Описания веток в git, продолжение

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

Я в основном работал над вопросом SO Как указать git всегда выбирать мою локальную версию для конфликтующих слияний в конкретном файле?, но я столкнулся со случаем, когда пользовательский Драйвер слияния не вызывается, поэтому файл из объединяемой ветки темы перезаписывает локальную ветку. Например:

git checkout master
echo "mainline" > BRANCH_DESCRIPTION
git add BRANCH_DESCRIPTION
git commit -m'Added BRANCH_DESCRIPTION file'
git checkout -b topic_branch
echo "this branch is used to fix the bug where [...]" > BRANCH_DESCRIPTION
git commit -m'Updated BRANCH_DESCRIPTION'
[code, code, code ...]
[git, git, git ...]
git checkout master
git merge --no-ff topic_branch

В этот момент BRANCH_DESCRIPTION будет просто перезаписан, так как описание основной ветки не изменилось, независимо от того, был ли настроен пользовательский драйвер слияния для файла.

Любые идеи?


person berto    schedule 29.08.2011    source источник
comment
Каково ваше обоснование хранения описания ветки в отслеживаемом контенте?   -  person CB Bailey    schedule 29.08.2011
comment
Я не особенно привязан к этой идее. Другой вопрос SO stackoverflow.com/questions/2108405/branch-descriptions- in-git заставил меня двигаться в этом направлении, и я начал проверять его. Я полагаю, вы имеете в виду, что эта информация является скорее метаданными, чем контентом, который следует отслеживать?   -  person berto    schedule 29.08.2011


Ответы (2)


Попробуйте использовать git notes для этой цели.

В вашей ветке сделать git notes add -m "this branch is for blah blah"

Затем напишите post-commit в своем репо со следующим:

#!/bin/sh
git notes show HEAD~1
git notes copy HEAD~1 HEAD

Дополнительно добавьте git notes remove HEAD~1, если хотите.

Используйте git notes show, чтобы увидеть, для чего предназначена ветвь.

person manojlds    schedule 29.08.2011
comment
Я экспериментировал с этим и заметил, что при использовании git reset заметка будет потеряна. Я предполагаю, что псевдоним в git reset может исправить этот случай. - person berto; 10.09.2011

Git теперь поддерживает это, запустив git branch --edit-description

Этот ответ имеет хорошее описание

person Jason Axelson    schedule 10.05.2012
comment
Хотя описание местное. Вы не можете совершить это. - person kzh; 20.01.2015