git-svn guestion о создании локальных филиалов - PullRequest
2 голосов
/ 25 февраля 2010

Есть ли способ создать локальную ветку или изменить существующую локальную ветку таким образом, чтобы ее нельзя было перенести в репозиторий SVN? Вот описание сценария.

git checkout -b local.farBranch remotes/farBranch
git checkout -b patched.local.farBranch
git merge local.patches

<work on patched branch && test>
<do not commit onto patched.local.farBranch>

git checkout local.farBranch
git commit -am "some changes"

git rebase local.farBranch patched.local.farBranch

<another work test cycle>

git checkout local.farBranch
git commit -am "last changes"

git svn dcommit

Теперь я никогда не хочу dcommit patched.local.farBranch (который отслеживает remotes / farBranch), потому что это поместит мои локальные патчи в репозиторий SVN. Это не фатальная проблема, но это боль в keester, потому что патч должен быть удален, когда в конечном итоге SVN farBranch (SVN) слился с транком. Так что я ищу способ предотвратить это

git checkout patched.local.farBranch
git svn dcommit                         <<== ERROR

git checkout local.farBranch
git svn dcommit                         <<== OK

Ответы [ 2 ]

0 голосов
/ 12 мая 2012

Могу добавить, что git-svn плохо подходит для работы с разными ветками. Я бы порекомендовал использовать SmartGit . Он всегда предлагает нажать на ветку в соответствии с именем локальной ветки.

0 голосов
/ 30 марта 2010

Я так не думаю. Недавно я искал git-svn для других целей, и он получает эту информацию, просто просматривая самое последнее сообщение в журнале с помощью элемента git-svn-id. (Вот почему Git Merge может вызвать проблемы).

Вы можете клонировать репозиторий git-svn, что приведет к репозиторию git, от которого вы не сможете отказаться, но у него также есть некоторые большие недостатки. Я бы не советовал, хотя это может сработать для вас.

Мне бы тоже понравилось, если бы это было так, возможно, разработчик git-svn как-нибудь включит его в будущий релиз, если кто-то спросит его / ее.

...