Considérons un dépôt svn qui a des branches qui ne sont pas nécessairement situées dans la disposition habituelle trunk/tags/branches. Je veux persuader git-svn de prendre en compte deux de ces branches, plus tout ce dont il a besoin, afin que je puisse utiliser git comme outil de fusion pour éviter les différents niveaux de problèmes qui nous ont affligés avec la fusion svn. Si les branches sont toutes au même endroit, il y a --branches
Mais existe-t-il un moyen de le faire si ce n'est pas le cas ?
Réponse
Trop de publicités?Faites votre git svn init ROOT_URL
Ensuite, vous pouvez modifier votre .git/config
pour ajouter des fetch
lignes :
[svn-remote "svn"]
url = https://svn.mcs.anl.gov/repos/mpi
fetch = mpich2/trunk:refs/remotes/trunk
fetch = mpich2/branches/dev/threads:refs/remotes/threads
fetch = mpich2/branches/dev/knem:refs/remotes/knem
fetch = mpich2/branches/release/MPICH2_1_0_8:refs/remotes/mpich2-1.0.8
Entonces git fetch
et vous devriez obtenir toutes les branches explicitement listées dans votre fichier de configuration.
Sachez toutefois que vous ne souhaiterez peut-être pas procéder à une fusion externe par l'intermédiaire de git-svn
. Git ne maintiendra pas le svn:mergeinfo
pour vous, ce qui rendra le retour à un flux de travail de fusion basé sur SVN presque impossible. Vous pouvez également confondre git-svn
en sélectionnant ou en fusionnant du code qui a déjà été validé dans le repo SVN actuel, puisqu'il recherche les éléments suivants git-svn-id:
"dans les messages de livraison afin de déterminer quel chemin SVN doit être utilisé pour git svn dcommit
. Voir le CAVEATS
de la page de manuel git-svn pour plus d'informations à ce sujet.
À titre d'information, j'ai également j'ai publié un article plus long sur ce sujet sur mon propre site .