Посмотрел старое выступление Линуса про Гит:
https://www.youtube.com/watch?v=4XpnKHJAok8&index=12&list=WL
Ну, первым делом можно заметить, что про svn он совершенно без понятия.
Вторым делом можно заметить, что у него есть и умные мысли: всегда хочется иметь местную ветку, куда хотелось бы складывать изменения каждые полчаса, даже если нет связи с главным сервером. И как раз под это git заточен, и для этого скажем svn чуть тяжеловесен. Поэтому git удобно использовать как пришлепку к старомодным системам типа Perforce или Clearcase: делаешь чек-аут из "большой" системы, создаешь новый репозиторий в git из этого состояния и делаешь промежуточные версии. А потом некоторое состояние засовывается назад в "большую" систему.
Третьим делом, он прямо там рассказывает про кривизну Гита: по его архитектуре, у _каждого_ клиента должна быть полная копия репозитория со всей историей. И поэтому он плохо живет с большими репозиториями.
Морали тут видимо две:
1. Версионирование должно быть "двухслойным": "большая" настоящая система, где ветки дешевы, но хранятся в центральном официальном месте, и "маленькая" индивидуальная система, хранящая короткую историю на локальной машине. Или лучше трехслойным, чтобы маленькую систему можно было легко бэкапить на центральные сервера, а также легко передавать другим людям. Но все эти две или три части по-хорошему должны быть в одной системе, интегрированы. И, кстати, хоелось бы коммитить из "маленькой" системы в "большую" не одним коммитом, а желательно полной историей изменений. Наверное добавить такую фичу в человеческую систему типа svn должно быть не так сложно.
2. Система прав доступа в версионировании должна быть двухмерной: по директорию и по ветке.
https://www.youtube.com/watch?v=4XpnKHJAok8&index=12&list=WL
Ну, первым делом можно заметить, что про svn он совершенно без понятия.
Вторым делом можно заметить, что у него есть и умные мысли: всегда хочется иметь местную ветку, куда хотелось бы складывать изменения каждые полчаса, даже если нет связи с главным сервером. И как раз под это git заточен, и для этого скажем svn чуть тяжеловесен. Поэтому git удобно использовать как пришлепку к старомодным системам типа Perforce или Clearcase: делаешь чек-аут из "большой" системы, создаешь новый репозиторий в git из этого состояния и делаешь промежуточные версии. А потом некоторое состояние засовывается назад в "большую" систему.
Третьим делом, он прямо там рассказывает про кривизну Гита: по его архитектуре, у _каждого_ клиента должна быть полная копия репозитория со всей историей. И поэтому он плохо живет с большими репозиториями.
Морали тут видимо две:
1. Версионирование должно быть "двухслойным": "большая" настоящая система, где ветки дешевы, но хранятся в центральном официальном месте, и "маленькая" индивидуальная система, хранящая короткую историю на локальной машине. Или лучше трехслойным, чтобы маленькую систему можно было легко бэкапить на центральные сервера, а также легко передавать другим людям. Но все эти две или три части по-хорошему должны быть в одной системе, интегрированы. И, кстати, хоелось бы коммитить из "маленькой" системы в "большую" не одним коммитом, а желательно полной историей изменений. Наверное добавить такую фичу в человеческую систему типа svn должно быть не так сложно.
2. Система прав доступа в версионировании должна быть двухмерной: по директорию и по ветке.
no subject
Date: 2014-05-13 12:33 am (UTC)no subject
Date: 2014-05-13 01:24 am (UTC)no subject
Date: 2014-05-13 02:24 am (UTC)no subject
Date: 2014-05-13 02:33 am (UTC)no subject
Date: 2014-05-13 02:55 am (UTC)no subject
Date: 2014-05-13 08:01 pm (UTC)no subject
Date: 2014-05-13 09:31 pm (UTC)no subject
Date: 2014-05-13 05:59 am (UTC)no subject
Date: 2014-05-13 08:03 pm (UTC)no subject
Date: 2014-05-13 07:10 am (UTC)no subject
Date: 2014-05-13 08:36 pm (UTC)no subject
Date: 2014-05-13 08:39 pm (UTC)no subject
Date: 2014-05-13 05:12 pm (UTC)no subject
Date: 2014-05-13 08:08 pm (UTC)no subject
Date: 2014-05-14 07:20 am (UTC)no subject
Date: 2014-05-16 04:23 pm (UTC)