OSTRZEŻENIE: takie "fikcyjne połączenie", jak zaleca się przez @Martin_Geisler, może naprawdę zepsuć, jeśli później chcesz zrobić prawdziwe scalenie dwóch gałęzi. Fałszywe scalenie zostanie zarejestrowane i powiedz, że scaliłeś się z odgałęzieniem, w którym zrobiłeś fikcyjne połączenie - nie zobaczysz zmian. Lub jeśli połączysz się z inną gałęzią, zmiany w tej innej gałęzi zostaną cofnięte.
Jeśli chcesz to skopiować cały plik z jednego oddziału do drugiego, można po prostu zrobić:
hg update -r to-branch
hg revert -r from-branch file
hg ci -m 'copied single file from from-branch to to-branch
Jeśli chcesz wybrać różne części tego pliku, a następnie "hg record"
jest przydatna.
Po prostu zrobiłem to w moim katalogu domowym .hgignore.
Jeśli obie gałęzie dokonały zmian w pliku, który chcesz zachować, brudną sztuczką byłoby utworzenie scalenia dwóch gałęzi przy użyciu hg scalania, prawdopodobnie/prawdopodobnie na jeszcze innej gałęzi, sprawdzenie tego, a następnie skopiować jeden plik pomiędzy scaleniem i odgałęzieniem do-:
hg update -r to-branch
branch merge-branch
hg merge -r from-branch
hg ci -m 'temp merge to be discarded"
hg update -r to-branch
hg revert -r merge-branch single-file
hg ci -m 'merged single-file from from-branch to to-branch"
hg strip merge-branch
warto wspomnieć: droga do „skopiowania pojedynczego pliku między oddziałami” (lub wersje, lub od zmiany scalić, albo ... .) to "hg revert". To znaczy.
hg update -r Where-you-want-to-copy-to
hg revert -r Where-you-want-to-copy-from file-you-want-to-copy
...
hg ci
z jakiegoś powodu, a niektóre z moich współpracowników, że ta BARDZO mylące. "revert" == "copy" ... ma sens w przypadku niektórych wzorców użycia, ale nie wszystkie.
To powinno być zaakceptowaną odpowiedzią zamiast ten, który podarował Martin Geisler, chociaż nie będzie to rzeczywiście plik, kopiowanie go jest tym, co chce się zrobić przez większość czasu i nie zepsuje gałęzi. – noamik
To zadziałało świetnie, ponieważ przynosi pojedynczy plik z oddziału do Jedną z rzeczy, które zauważam jest to, że checkin do bagażnika nie pojawia się w historii pliku, co jest niefortunne –
Witam i dziękuję za odpowiedź Mam problem, jednak w mojej sytuacji mój gałąź źródłowa zawiera plik, który nie istnieje w mojej domyślnej gałęzi, ale chcę go skopiować bez scalania reszty gałęzi. Kiedy próbuję zrobić to, co opisałeś, otrzymuję "brak takiego pliku w wersji" Jakieś sugestie? – propagated