Mercurial: в чем преимущество исправления ошибок в более ранних версиях - PullRequest
2 голосов
/ 23 апреля 2010

Согласно руководству , под заголовком: Исправление ошибок в более ранних ревизиях , оно гласит:

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

  1. Как возвращение в историю делает его чище? Это все еще делает новую ревизию в наконечнике.
  2. Имеет ли это какое-то отношение к тому, что записано как его родитель?
  3. Есть ли способ просмотреть журналы, видя недавно вставленные изменения в этом порядке?
  4. Этот урок под основным заголовком Одинокий разработчик с нелинейной историей . Это хорошая практика при работе в команде?

Ответы [ 3 ]

4 голосов
/ 23 апреля 2010

1) Это делает его чище, предоставляя исправление ближе к созданию ошибки. Таким образом, если у вас было несколько клонов после ошибки, каждый из них мог бы извлечь набор (-ы) исправлений, которые не содержат код, связанный с последующими изменениями. Это создает новый набор изменений (совет). Затем вы захотите объединить это исправление со всеми клонами, где это уместно.

2) Да. Поскольку вы клонируете код, в котором была создана ошибка, история изменений ссылается непосредственно на набор изменений, в котором возникла ошибка, поэтому она помогает документировать (напрямую, а не только через комментарии), почему существует изменение.

3) Набор изменений никогда не будет вставлен - он всегда должен быть объединен позже в дереве, как и любой другой клон.

4) Я не вижу такого подхода отличным от любого командного подхода. В любом случае вам нужно будет связаться с командой, чтобы указать, где находится исправление, или это будет в каком-то главном хранилище, где вы можете объединить исправление. Я бы сказал, что этот подход применим в командной среде.

2 голосов
/ 23 апреля 2010

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

0 голосов
/ 23 апреля 2010

Я более знаком с Subversion, но если вам разрешено вносить изменения в «прошлое», это будет означать, что вы можете изменять все ветви определенного репозитория.

Другими словами, если вы допустите ошибку в ревизии 100 и разветвите код, ошибка будет сохраняться в обеих ветвях. Вместо того, чтобы исправлять код в обеих ветвях по отдельности, вы можете исправить ошибку один раз, в ревизии 100, и распространить ее по обеим ветвям.

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