Я использую bzr для очень простой задачи: получение версии разработки GNU Emacs. После начальной буквы bzr branch
, Я хотел бы усовершенствовать свою локальную версию. Я читал о документации относительно bzr pull
и bzr merge
, но не мог иметь смысла из него. Я попробовал bzr merge
в течение нескольких дней, и найденный этим bzr merge
часто приводил к неразрешимым конфликтам. Обратите внимание, что я не вносил локальных изменений. bzr pull
рекомендуемый путь?
ОТРЕДАКТИРУЙТЕ 1 (добавила схема, украденная от Chris Conway):
remote: A --> B --> C --> D
\ \
(branch) (merge)
\ \
local: \--> A (no change) \--> why conflicts?
Я понимаю мерзавца и darcs, но не знаю о bzr. Аналогии с мерзавцем или darcs помогут много.
РЕДАКТИРОВАНИЕ 2: update
предполагаемый работать с checkout
только? Выполнение update
в a branch
кажется, ничего не делает.
Вы видели Генератор прокси WCF на Codeplex? Основываясь на том, кто стоит за этим (Кейт Грегори и Микеле Леру Бустаманте), есть надежда, что это может быть полезно - плюс вы получаете источники, чтобы вы могли адаптироваться/подправить содержание своего сердца!
(еще не успели всерьез взглянуть на него сами - еще - это в бесконечном перечислять «To-Do when I around to it»....)
Плюс посмотрите эту запись блога здесь Педрама Резаеи , показывающую, как повлиять на шаг Visual Studio «Add Service Reference» с вашим собственным пользовательским кодом.
-121--2349442-Простой LIKE найти любое число будет достаточно...
...WHERE LIKE '%[0-9]%'
-121--5109213- Обратите внимание, что я не сделал никаких локальных изменения. Является ли
bzr pull
рекомендуемым Путь?
Да, это звучит так, как будто bzr pull
является подходящей командой для вашего использования. pull
берет удаленную исходную ветвь и копирует все изменения из нее в локальную конечную ветвь в более старой версии. (Здесь я использую «удаленный» и «локальный» для обозначения «источник» и «пункт назначения». Любые две ветви будут работать, даже две локальные ветви.)
remote: A --> B --> C --> D
\ \
(branch) (pull)
\ \
local: \--> A (no change) \--> D
pull
работает только в том случае, если две ветви не разошлись, т.е. если ревизия пункта назначения является старой ревизией источника. push
- это как раз противоположная операция: она копирует изменения в локальной ветви в удаленную ветвь в более старой версии.
remote: A (no change) --> C
\ /
(branch) (push)
\ /
local: \--> A --> B --> C
Слияние
используется, когда требуется скопировать изменения в локальную ветвь, которая разошлась с удаленной ветвью.
remote: A --> B --> C --> D
\ \
(branch) (merge)
\ \
local: \--> A --> X --> Y --> Z
Здесь Z
включает все изменения из D
и изменения из Y
. В этом случае извлечение
невозможно. Обратите внимание, что для сохранения новой объединенной редакции необходимо зафиксировать
после слияния
, в то время как при извлечении ветвь автоматически переносится в сохраненную точку ревизии.
Извлечение
позволяет использовать bzr в режиме, аналогичном CVS/SVN: локальная ветвь будет «присоединена» к удаленной ветви; commit
s автоматически push
ed; если удаленная ветвь разошлась, фиксация завершится неуспешно; update
- это только слияние
из «присоединенной» удаленной ветви.
Слияние предназначено для слияния двух разных ветвей, а не копий (локальных и удаленных). Используйте тягу.