Я работаю над проектом, используя Fossil для контроля версий и его организации. У меня есть несколько веток, отличных от моей основной ветки, и я хочу обновить (зафиксировать) только одну ветку. Выполнение фиксации приведет к тому, что мои изменения в ветке будут перемещены в основные файлы (я размещаю свой проект в Chiselapp). Как можно обновить или зафиксировать только одну ветку, не затрагивая основные файлы?
Обновление ветки в Fossil
Ответы (2)
Коммит влияет только на одну ветвь. За исключением, возможно, после слияния двух ветвей, но я предполагаю, что вы этого не делали.
Единственное, что я могу придумать, это то, что используемый вами скин имеет пункт меню «Файлы», который ссылается на dir?ci=tip
. tip
— это специальное имя для самой последней фиксации. Это означает, что если вы сделаете коммит в другой ветке, отличной от trunk
, этот пункт меню «Файлы» теперь покажет вам файлы этой другой ветки.
Хакерский временный способ исправить это — сделать фиксацию в trunk
впоследствии, чтобы tip
снова ссылался на trunk
. Но это не идеально.
Самый простой способ навсегда исправить это — выбрать другой скин, который этого не делает, или отредактировав заголовок вашего скина и заменив ссылку на dir?ci=tip
другой ссылкой, например, dir?ci=trunk
. Таким образом, этот пункт меню всегда будет показывать файлы в ветке trunk
.
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
, внесите изменения в свою новую ветку (которая будет отправлена как новая ветка) или в вашу частную ветку (по умолчанию НЕ будет отправлена).
trunk
или что-то другое? - person Martijn   schedule 24.06.2018