SVN - Каковы все преимущества, которые мы имеем, если мы фиксируем огромный список файлов за один раз, а не за несколько коммитов? - PullRequest
2 голосов
/ 13 декабря 2010

Мне бы очень хотелось понять, в чем заключаются все преимущества, которые мы получаем, если мы фиксируем огромный список файлов за один раз, а не за несколько коммитов?

Ответы [ 4 ]

3 голосов
/ 13 декабря 2010

Одним из больших преимуществ Subversion по сравнению с CVS является его способность сохранять связанные изменения как единый набор изменений, а не как отдельный набор изменений отдельных файлов.Допустим, вы работаете над новой функцией, которая включает в себя десяток файлов.Теперь вам говорят, что изменение должно быть отменено.

Если вы использовали систему, подобную CVS, эти изменения рассматриваются как дюжина индивидуальных и независимых изменений.Отслеживать их все может быть довольно сложно.Вы можете использовать временные метки, но вам все равно придется искать весь ваш репозиторий.Вы можете попробовать пометить свои изменения, но вам все равно придется перемещаться по всему хранилищу в поисках этого изменения.

В Subversion это изменение было одним набором изменений.Поддержка этого изменения просто означает резервное копирование этого единственного набора изменений.

Другое преимущество заключается в том, что Subversion может делать элементарные изменения в наборе изменений.Представьте, что у вас есть 20 файлов, связанных с одной модификацией.Теперь представьте, что в одном из этих файлов кто-то сделал обновление, пока вы тестировали свои изменения.В CVS, если вы сделали коммит, будет зафиксировано 19 из этих файлов, но не последний.

Теперь ваш репозиторий находится в непроверенном и, вероятно, нестабильном состоянии.На самом деле, есть большая вероятность, что ваше программное обеспечение даже не будет собираться.Ваш инстинкт заключается в том, чтобы быстро выполнить обновление этого одного файла, а затем выполнить несколько грубых тестов и зафиксировать этот один файл.

В Subversion ни один из измененных вами файлов не будет зафиксирован.Хранилище все еще находится в стабильном и проверенном состоянии.Вам не нужно беспокоиться о репозитории, вы можете обновить этот файл и выполнить полный регрессионный тест, прежде чем пытаться выполнить ваш коммит снова.


Итак, в ответ на ваш вопрос, следуетВы помещаете все эти файлы в один большой список: это зависит.Зафиксируйте изменения файла как отдельные наборы изменений.Может случиться так, что все сделанные вами изменения файлов не связаны друг с другом.В этом случае, не стесняйтесь сделать каждый отдельный список изменений.Не беспокойтесь о том, что номер ревизии от до .Я никогда не понимал эту проблему, поскольку номер редакции не влияет на качество вашего программного обеспечения.

Опять же, если все изменения являются одним набором, сделайте единый коммит ваших изменений.Идея в том, что если кто-то пытается проанализировать изменения, он может быстро просмотреть все задействованные файлы.Изменение может быть одной функцией, номером ошибки или тем, как вы хотите измерить свое изменение.Смысл в том, чтобы совершить ваши изменения в логических единицах.

2 голосов
/ 13 декабря 2010

легче увидеть, какие файлы были связаны с задачей, например можно посмотреть, какие файлы были изменены для исправления ошибки # 123

О, и убедитесь, что вы добавили номер ошибки в комментарии коммита, это значительно облегчает жизнь, когда вы хотите вернуться назад во времени, чтобы увидеть, что вы изменили например «Хм, мы исправили эту ошибку около года или двух назад, странно, что она была вновь открыта, давайте проверим историю коммитов, что мы делали тогда» а затем вы просто ищете номер ошибки и мгновенно находите его.

и наоборот: в вашей системе отслеживания ошибок добавьте заметку с номером коммита, который исправил ошибку, делает жизнь намного проще.

2 голосов
/ 13 декабря 2010

Размер не имеет значения.

Один коммит должен охватывать одно логическое изменение, которое может охватывать или не охватывать несколько файлов. Если вы объединяете несколько логических изменений в один коммит, позже может быть трудно найти или отменить одно из этих логических изменений. Если уже слишком поздно разделять изменения на логические единицы, фиксируйте все сразу и надеетесь, что вы не пожалеете об этом.

0 голосов
/ 13 декабря 2010

лучше для сохранения номера версии меньше, легче отслеживать ваши изменения,

** оставляйте комментарии, когда вы делаете коммит, потому что вы можете забыть, почему вы сделали этот коммит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...