Воспроизведение модели ветвления git с помощью ртутных закладок - PullRequest
4 голосов
/ 11 июля 2011

Я пытаюсь использовать Mercurial и хочу воспроизвести модель ветвления git с помощью расширения Bookmark.Вот проблема с этим.

Представьте, что у меня есть репозиторий.Я добавил 2 закладки

user@host:/tmp/hgtest$ hg bookmark main
user@host:/tmp/hgtest$ hg bookmark feature
user@host:/tmp/hgtest$ hg bookmarks 
 * feature                   0:76c6736b4548
   main                      0:76c6736b4548

После этого я добавил немного кода и решил, что функция готова (в ближайшее время эта функция не будет разработана).В этот момент закладки указывают на разные коммиты.

user@host:/tmp/hgtest$ hg bookmarks
 * feature                   2:9d32bb6bdbc6
   main                      0:76c6736b4548

Теперь я возвращаюсь в состояние, в котором я начал разработку своей функции

user@host:/tmp/hgtest$ hg up main
resolving manifests
removing second.file
getting first.file
1 files updated, 0 files merged, 1 files removed, 0 files unresolved

Я хотел бы выдать *Команда 1012 * для того, чтобы граф истории выглядел так

user@host:/tmp/test-git$ git log --graph
*   commit d8a957350fc8fbaf542e20aac0d4c95477cc2d3c
|\  Merge: 20493a7 7b59a16
| | Author: Author
| | Date:   Mon Jul 11 18:35:09 2011 +1100
| | 
| |     Merge branch 'testfeature'
| |   
| * commit 7b59a16d0b01d9bcc22f21a3c68f63acf60f37da
| | Author: Author
| | Date:   Mon Jul 11 18:34:34 2011 +1100
| | 
| |     Added line to test.file
| |   
| * commit 20ea105cf300f7f3e952ac7eddffd2aee6811f7c
|/  Author: Author
|   Date:   Mon Jul 11 18:32:27 2011 +1100
|   
|       Added code for testfeature
|  
* commit 20493a7a61705967b092780cae9fadd76ec49019
  Author: Author
  Date:   Mon Jul 11 18:25:17 2011 +1100

, но Mercurial не позволяет этого

user@host:/tmp/hgtest$ hg merge feature
abort: nothing to merge (use 'hg update' or check 'hg heads')
user@host:/tmp/hgtest$ 

Я хочу воспроизвести подход git, поскольку он позволяет разбить гигантскую линиюкоммитов разработки в кучу коммитов, связанных с функциями, чтобы упростить понимание истории.

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

1 Ответ

5 голосов
/ 11 июля 2011

Я думаю, что вы можете быть чем-то.

Mercurial не имеет слияний «ускоренной перемотки», в терминах git. Это то, что вам говорят: объединять нечего, вместо этого вы должны hg update feature. Но это не переместит вашу main закладку туда, где вы хотите (и это также изменит вашу текущую закладку).

Это в основном заставляет вас hg bookmark -f main сразу после обновления, что кажется неправильным.

Я возьму это в список рассылки mercurial-devel, чтобы узнать, что думают остальные, и обновлю этот ответ, как только у меня появятся новости.

...