2010-01-29 5 views
0

Je voudrais suivre une branche distante sur SVN à partir de Git. Je peux voir les rudiments de la façon de le faire avec la commande git-svn, j'espérais faire quelque chose comme ce qui suit:Comment puis-je suivre une seule branche sur subversion avec git

Git branch | SVN branch 
----------------------- 
master  | Trunk 
feature1 | <not mapped> 
feature2 | <not mapped> 

de sorte qu'une fois que je fusionner en git/maître, puis faire dcommit, coffre serait mis à jour avec seulement des changements entre le dernier svn commit et le git/HEAD.

Est-ce possible? comment je le ferais?

Répondre

1

Le git svn documentation décrit le travail avec le coffre de Subversion, mais avec un maître sale:

# Clone a repo (like git clone): 
    git svn clone http://svn.example.com/project/trunk 
# Enter the newly cloned directory: 
    cd trunk 
# You should be on master branch, double-check with 'git branch' 
    git branch 
# Do some work and commit locally to git: 
    git commit ... 
# Something is committed to SVN, rebase your local changes against the 
# latest changes in SVN: 
    git svn rebase 
# Now commit your changes (that were committed previously using git) to SVN, 
# as well as automatically updating your working HEAD: 
    git svn dcommit 
# Append svn:ignore settings to the default git exclude file: 
    git svn show-ignore >> .git/info/exclude 

Pour faire votre travail sur les branches de fonction au lieu de maître

git checkout -b feature1 
hack ... 
git add ... 
git commit ... 

Lorsque vous êtes prêt à remettre votre travail dans Subversion, assurez-vous de garder votre historique linéaire:

git checkout master 
git svn rebase 
git rebase master feature1 
git checkout master 
git merge feature1 

Expédier le produit!

git svn dcommit