от
Я использую Subversion в течение нескольких лет и после использовал sourcesafe, я просто люблю диверсии. В сочетании с TortoiseSVN, я не могу представить, как это может быть лучше. Тем не менее, есть растущее число разработчиков, утверждая, что в Subversion есть проблемы и что мы должны двигаться в новое поколение распределенных систем контроля версий, таких как Git. Как Git улучшить подрывную деятельность?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

31 Ответы

0 голосов
от
Я использую Subversion в течение нескольких лет и после использовал sourcesafe, я просто люблю диверсии. В сочетании с TortoiseSVN, я не могу представить, как это может быть лучше. Тем не менее, есть растущее число разработчиков, утверждая, что в Subversion есть проблемы и что мы должны двигаться в новое поколение распределенных систем контроля версий, таких как Git. Как Git улучшить подрывную деятельность?
0 голосов
от
Git-это не лучше, чем диверсия. Но тоже не хуже. Это другое. Ключевым отличием является то, что она является децентрализованной. Представьте, что вы являетесь разработчиком на дороге, вы развиваете на вашем ноутбуке, и вы хотите иметь системы управления версиями, так что вы можете вернуться через 3 часа. С Subversion, у вас есть проблема: репозиторий SVN может быть в месте, вы не можете достичь (в вашей компании, и у вас нет интернета на данный момент), Вы не можете совершить. Если вы хотите сделать копию вашего кода, Вы должны буквально копировать/вставить его. С Git, вы не имеют этой проблемы. Ваша локальная копия репозитория, и вы можете совершить его и получить все преимущества управления исходным кодом. Когда вы восстановить связь с главным репозиторием, вы можете совершить против него. Это выглядит хорошо на первый, но просто имейте в виду дополнительные сложности этого подхода. Мерзавец, видимо, "новая, блестящая, крутая" вещь. Это отнюдь не плохо (есть причина Линус написал это для Linux ядра развития, в конце концов), но я чувствую, что многие люди прыгают на "распределенные системы управления версиями" поезд просто потому что он новый и написан Линусом Торвальдсом, фактически не зная почему/если это лучше. В Subversion есть проблемы, но и мерзавец, ртутный, в CVS, TFS или что угодно. Редактировать: этот ответ сейчас уже год и до сих пор порождает много положительных отзывов, так что я решила добавить еще несколько пояснений. В последний раз пишу в этом году, ГИТ получила большой импульс и поддержку, в частности, поскольку сайты, как GitHub действительно снял. Я использую Git и Subversion и сегодня я хотел бы поделиться некоторыми личными понимание. Во-первых, Git может быть очень запутанным на первый, когда работает децентрализовано. Что такое пульт? и как правильно настроить исходный репозиторий? два вопроса, которые приходят в начале, особенно по сравнению с СВН просто "svnadmin создать", в Git "ГИТ инит" может взять параметры --чуть-чуть --и общий, который, кажется, на "правильный" путь, чтобы создать централизованное хранилище. Есть причины для этого, но это добавляет сложности. Документация выполнение команды "извлечь" является очень запутанным для народа меняется с течением - на "правильный" путь, кажется, "git клон", а "ГИТ кассе", похоже, переключить ветки. ЖКТ действительно сияет, когда вы децентрализованы. У меня есть сервер дома и ноутбук на дороге, и SVN просто не работает здесь. С SVN, я не могу иметь локальные системы управления версиями, если я не подключен к репозиторию (Да, я знаю о СВК или о том, чтобы копировать сделки РЕПО). С Git, в любом случае, это режим по умолчанию. Это лишняя команда, хотя (фиксации git коммиты локально, в то время как Git толчок происхождение мастер отодвигает ветку master на удаленном имени "происхождение"). Как сказали выше: git добавляет сложности. Два режима создания хранилищ, касс и клон, фиксации и нажима... вы должны знать, какие команды работают на местном уровне и работать с "сервера" (я предполагаю, что большинство людей до сих пор, как в центре "мастер-репозитория"). Кроме того, оснастка все еще недостаточно, по крайней мере на Windows. Да, есть визуальная студия надстройки, но я по-прежнему использовать git bash с msysgit. СВН имеет то преимущество, что гораздо проще учиться: есть свой репозиторий, все изменения к нему, если вы знаете, как для создания, фиксации и оформления заказа, и вы готовы пойти и пикап вещи, как ветвление, обновление и т. д. позже. Git имеет то преимущество, что он гораздо лучше подходит, если некоторые разработчики не всегда связан с главного хранилища. Кроме того, это намного быстрее, чем в SVN. И от того, что я слышал, ветвление и слияние поддержка гораздо лучше (что вполне ожидаемо, поскольку они являются основными причинами это было написано). Это также объясняет, почему он получает так много шума в интернете, как Git идеально подходит для проектов с открытым исходным кодом: просто вилка это, внесите ваши изменения в свой форк, а затем задать оригинал сопровождающий проект, чтобы взять ваши изменения. С Git, это просто работает. На самом деле, попробовать его на GitHub, это магия. Что я вижу, ГИТ-СВН мостов: центральный репозиторий в Subversion РЕПО, но разработчики локально работать с Git и мост тогда толкает их изменения в SVN. Но даже с этим длительным дополнение, я до сих пор придерживаюсь мой основной посыл: Git-это не лучше или хуже, она просто другая. Если у вас есть необходимость "автономной системы управления версиями" и готовность потратить некоторое дополнительное время, изучая его, это фантастика. Но если у вас есть строго централизованная система управления версиями и/или пытаются внедрить системы управления версиями, в первую очередь, потому что ваши сотрудники не заинтересованы, тогда простоту и превосходный инструментарий (по крайней мере на Windows) блеск СВН.
0 голосов
от
С Git, вы можете сделать практически что угодно в автономном режиме, потому что у каждого есть свой собственный репозиторий. Делая ветвей и слияние между ветками очень легко. Даже если у вас нет фиксации прав на проект, вы все равно можете иметь свой собственный репозиторий в интернете, и публиковать "push-запросов" для ваших патчей. Всех, кто любит свой патчей может вытащить их в свой проект, в том числе официальных сопровождающих. Это тривиально, чтобы ответвить проект, изменить его, и по-прежнему держать сливаясь в исправлений от руководителя филиала. Работает Git для разработчиков ядра Linux. Это означает, что он очень быстро (он должен быть), и масштабируется до тысяч вкладчиков. Git также использует меньше места (до 30 раз меньше места для хранилища браузере Mozilla). Git очень гибок, очень TIMTOWTDI (есть больше чем один способ сделать это). Вы можете использовать любой рабочий процесс, который вы хотите, и Git будет поддерживать его. Наконец, есть на GitHub, отличный сайт для размещения ваших git-репозиториев. Недостатки ГИТ: это гораздо труднее учиться, потому что Git имеет больше понятий и более команд. изменения не имеют номера версии, как в Subversion многие команды git зашифрованы, и сообщения об ошибках очень неудобный ей не хватает хорошего графического интерфейса (таких как большой в TortoiseSVN)
0 голосов
от
Другие ответы проделали хорошую работу, объясняя основные функции ЖКТ (большие которые). Но есть еще так много способов, что Git ведет себя лучше и помогает сохранить мою жизнь более вменяемой. Вот некоторые мелочи: В Git есть команда 'очистить'. СВН отчаянно нуждается в эту команду, учитывая, как часто он будет сбрасывать лишние файлы на диске. Git имеет 'рассечь' команда. Это приятно. СВН создает .в SVN папок в каждой папке (git создает только один .каталог ЖКТ). Каждый скрипт ты пишешь, и каждый грэп вы делаете, должны быть написаны, чтобы их проигнорировать .каталоги в SVN. Вам также потребуется целая команда ("SVN экспортировать") только, чтобы получить вменяемый копию ваших файлов. В каждый файл
0 голосов
от
"Почему Git-это лучше, чем X" описывает различные плюсы и минусы ГИТ против других СДМ. Кратко: Git отслеживает контент, а не файлы Филиалы легкие и слияния легких, и я имею в виду, действительно легкий. Это распространяется, в основном каждый репозиторий является филиалом. Это гораздо легче развиваться параллельно и тесно, чем с подрывной деятельностью, на мой взгляд. Она дает также возможность автономного развития. Он не накладывает каких-либо рабочего процесса, как показано на вышеуказанном веб-сайта, существует множество возможных процессов с Git. Подрыв стиле рабочего процесса легко мимикрируют. Git-репозитории имеют намного меньший размер файла, чем репозиториев Subversion. Есть только один ".каталог Git", в отличие от десятки ".СВН" хранилищ (примечание в Subversion 1.7 и выше, теперь используется единый каталог, как мерзавец.) Промежуточная зона является удивительным, он позволяет увидеть изменения, которые вы будете совершать, совершать частичные изменения и делать различные другие вещи. Прятать имеет неоценимое значение, когда вы делаете "хаотического" развития, или просто хотите, чтобы исправить ошибку, в то время как вы все еще работаете на что-то другое (на другой ветке). Вы можете переписать историю, которая отлично подходит для приготовления наборы патч и исправить ваши ошибки (прежде чем публиковать коммиты) ... и многое другое. Есть некоторые недостатки: Здесь не так много хороших GUI для него. Это новый и подрывной деятельности была вокруг в течение гораздо дольше, поэтому это естественно, так как есть несколько интерфейсов в развитии. Некоторые хорошие из них относятся TortoiseGit и GitHub для Mac. Частичное извлечение/клоны репозитория не представляется возможным на данный момент (я читал, что она в разработке). Однако, есть поддержка субмодуль. В Git 1.7 поддержка разреженных извлечений. Это может быть труднее учиться, хотя я не нашел этого (около года назад). ГИТ недавно улучшил интерфейс и довольно удобен для пользователя. В наиболее простой использования, Subversion и Git практически одинаковы. Нет большой разницы между:
svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit 

и

git clone git@github.com:foo/bar.git
cd bar
# edit
git commit 

Когда git действительно сияет ветвления и работать с другими людьми.
0 голосов
от
Гугл технарей: Линус Торвальдс о Git в http://www.youtube.com/watch?v=4XpnKHJAok8 Страница сравнения ЖКТ Вики http://git.or.cz/gitwiki/GitSvnComparsion
0 голосов
от
Ну, оно распределяется. Показатели свидетельствуют о том, что это значительно быстрее (учитывая ее рассредоточенность, такие операции, как дифференциалы и журналы-все местные и, конечно, это невероятно быстрее в этом случае), и рабочие папки поменьше (который до сих пор взрывает мой мозг). Когда вы работаете на подрыв, или любой другой клиент/сервер пересмотра системы управления, вы, по сути, создать рабочие копии на вашем компьютере, проверяя изменения. Это представляет собой моментальный снимок в момент того, что хранилище выглядит. Вы обновите вашу рабочую копию через обновления, и обновления через репозитория коммитов. С распределенного управления версиями, у вас нет снимка, но скорее всего кода. Хочу сделать дифф с 3-месячным версия? Нет проблем, 3 месяца старая версия все еще находится на вашем компьютере. Это не только означает, что так быстрее, но если вы отключены от центрального сервера, вы можете делать многие операции, к которым вы привыкли. Другими словами, вы не просто моментальный снимок данного пересмотра, но и всей кодовой базы. Можно подумать, что Git будет занимать кучу места на вашем жестком диске, но от нескольких критериев, которые я видел, это занимает меньше. Не спрашивайте меня, как. Я имею в виду, он был построен Линус, он знает вещь или два о файловых системах, я думаю.
0 голосов
от
Основные моменты я вроде про DVCS в те : Вы можете совершить сломанные вещи. Это не важно, потому что другие народы не увидите их, пока вы не опубликуете. Публиковать время от времени фиксации. Благодаря этому вы можете более часто совершают. Можно объединить полную функциональность. Эта функциональность будет иметь свой собственный филиал. Все изменения в этой отрасли будет связана с этой функциональности. Однако вы можете сделать это с ЦВК со обходят его по умолчанию. Вы можете искать вашу историю (когда функция изменилась ) Вы можете отменить тянуть, если кто-то напортачил в главный репозиторий, вы не должны исправить ошибки. Просто понятно слияния. Когда вам нужно контролировать источник в любой каталог : ГИТ инит . и вы можете совершить, отмена изменений и т. д... Это быстро (даже в Windows ) Основной причиной относительно большого проекта является улучшение коммуникации, созданная точки 3. Другие приятные бонусы.
0 голосов
от
Самое смешное: Я веду проекты в Subversion РЕПО, но открыть их с помощью команды git клон. Пожалуйста, прочитайте разработке с Git на проект Хотя код Google изначально говорит Subversion, вы можете легко использовать git во время разработки. Поиск "ГИТ СВН" предлагает эта практика широко распространены, и мы тоже призываем вас экспериментировать с ним. Используя git на SVN репозитория дает мне преимущества: Я могу работать на нескольких машины, поднимая и вытягивая из и для них У меня есть центральный репозиторий
backup/public
СВН для других, чтобы проверить И они вольны использовать Git для своего собственного
0 голосов
от
Все ответы здесь, как ожидается, программист ориентированной, однако, что произойдет, если ваша компания использует для ввода и редактирования данных вне исходного кода? Есть много документов, которые не являются исходным кодом, которые приносят пользу из системы управления версиями, и должны жить рядом с кодом, а не в другой CMS. Большинство программистов не работают в изоляции - мы работаем для компании в составе команды. Имея это в виду, сравним удобство использования, как клиент оснастки и подготовки, между Subversion и Git. Я не вижу сценария, в котором любая распределенная система контроля версий будет легче использовать или объяснить не программисту. Мне бы очень хотелось оказаться неправым, потому что тогда я смогу оценить Git и на самом деле есть надежда, что он будет воспринят людьми, которые нуждаются в системе управления версиями, которые не являются программистами. Даже тогда, если его спросят управления почему мы должны перейти от централизованной к распределенной системой контроля версий, я был бы в затруднении, чтобы дать честный ответ, потому что нам это не нужно. Отказ от ответственности: я заинтересовался подрывной рано (по версии v0.29) так что, очевидно, я пристрастен, но компании я работала с этого времени получают выгоду от моего энтузиазма, потому что я поощрял и поддерживал его использования. Я подозреваю, что это, как это происходит с большинством программного обеспечения компании. С таким количеством программистов прыгает на подножку мерзавец, интересно, сколько компаний не намерена упустить преимущества использования контроля версий за пределами исходного кода? Даже если у вас есть отдельные системы для различных групп, вы теряете на некоторые из преимуществ, такие как (единый) проблема интеграции слежения, в то время как увеличение обслуживания оборудования и требований к обучению.
...