Обновление ветки в Fossil

Я работаю над проектом, используя Fossil для контроля версий и его организации. У меня есть несколько веток, отличных от моей основной ветки, и я хочу обновить (зафиксировать) только одну ветку. Выполнение фиксации приведет к тому, что мои изменения в ветке будут перемещены в основные файлы (я размещаю свой проект в Chiselapp). Как можно обновить или зафиксировать только одну ветку, не затрагивая основные файлы?


person Community    schedule 23.06.2018    source источник
comment
Что именно вы подразумеваете под основными файлами? Файлы в ветке trunk или что-то другое?   -  person Martijn    schedule 24.06.2018


Ответы (2)


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

Единственное, что я могу придумать, это то, что используемый вами скин имеет пункт меню «Файлы», который ссылается на dir?ci=tip. tip — это специальное имя для самой последней фиксации. Это означает, что если вы сделаете коммит в другой ветке, отличной от trunk, этот пункт меню «Файлы» теперь покажет вам файлы этой другой ветки.

Хакерский временный способ исправить это — сделать фиксацию в trunk впоследствии, чтобы tip снова ссылался на trunk. Но это не идеально.

Самый простой способ навсегда исправить это — выбрать другой скин, который этого не делает, или отредактировав заголовок вашего скина и заменив ссылку на dir?ci=tip другой ссылкой, например, dir?ci=trunk. Таким образом, этот пункт меню всегда будет показывать файлы в ветке trunk.

person Martijn    schedule 24.06.2018

Fossil, в отличие от Git, отправляет/извлекает все ветки и теги одновременно*. Причина (помимо дизайна) заключается в том, что репозиторий Fossil является базой данных, push/full синхронизирует базу данных в соответствующем направлении.

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

*ЕСЛИ изменения вносятся в частные ветки (см. fossil help для fossil commit --branch --private, fossil branch new --private).

Частные коммиты/ветки по умолчанию исключены из push/pull. Чтобы также включить их, используйте параметр --private (см. fossil help для fossil push --private).

После отправки изменений они интегрируются в удаленное репо и могут просматриваться в веб-интерфейсе удаленного репо как отдельные коммиты или через ветку, к которой они принадлежат. Представление включает раздел Files, который отражает содержимое репо (моментальный снимок) в версии коммита.

Чтобы ответить на ваш вопрос: если вы зафиксировали изменения в существующей ветке trunk, они также будут перенесены в удаленную trunk. Если вы не хотите вносить изменения в удаленный trunk, внесите изменения в свою новую ветку (которая будет отправлена ​​как новая ветка) или в вашу частную ветку (по умолчанию НЕ будет отправлена).

person omnivorosaur    schedule 05.10.2018