Если у меня есть папка с множеством папок с фрагментами кода, как избежать того, чтобы Git или Mercurial отправляли исходный код в другую папку? - PullRequest
1 голос
/ 27 марта 2011

Если у меня есть папка, такая как:

code/try_closure
code/try_http_send
  [...]

, я могу создать хранилище в папке code, но затем, если я фиксирую в папке try_http_send:

hg commit -m "good version"      <--- git should be similar

тогда я могу случайно зафиксировать другие изменения кода в всех других папках в code.

В качестве альтернативы, я могу создать репозитории для каждой из подпапок, но этоглупо, а что, если мне нужно переместить все code в другое место, то мне нужно подтолкнуть подпапки одну за другой?Есть ли способ решить это?Ключевое слово здесь «случайно» фиксирует все файлы в других подпапках.Я знаю, что могу использовать hg commit . -m "good version", но вместо этого просто сделать hg commit -m "...".

Ответы [ 3 ]

3 голосов
/ 27 марта 2011

Сделайте их отдельными репозиториями, а затем сделайте их вложенными репозиториями из модуля кода верхнего уровня. Затем в коде вы можете сделать hg push --subrepos, чтобы вытолкнуть их всех, а затем вы можете быть клонами в виде дерева.

1 голос
/ 27 марта 2011

Репозиторий должен содержать вещи, которые вы хотите зафиксировать вместе.Если вы никогда не хотите фиксировать код из отдельных папок вместе, каждая папка должна быть отдельным хранилищем.

0 голосов
/ 27 марта 2011

Серьезно, вы должны потратить это время на период.Кроме того, всегда полезно проверить, что будет делать ваш следующий коммит, например, используя hg st и hg diff.Такая проверка служит последним быстрым обзором работы для фиксации и, возможно, напоминает вам о фиксации только некоторых файлов (например .).Если вы не хотите снимок текущей работы, вы не должны фиксировать вслепую.

Тем не менее, если вы действительно хотите фиксировать без аргументов файла, вы можете либо

  • используйте подпункты, как предложено в других ответах, или
  • определите коммит псевдоним с . в качестве аргумента по умолчанию
...