2010-07-20 4 views
5

il y a quelques mois j'ai configuré un git avec un dépôt svn. Jusqu'à présent, je n'utilisais le référentiel svn que pour rester à jour avec l'application fournie. Mais maintenant je veux aussi remettre des choses en arrière. Pour ce faire, chaque fonctionnalité que je vais commettre doit être dans une branche séparée. J'ai lu sur la façon dont vous devriez créer une nouvelle branche etc. Mais je pense que j'ai mal configuré mon git, je n'ai aucune information de branche etc. Je pense que j'ai seulement l'information de coffre. Voici comment mon dépôt svn a été mis en place dans ma config git:git-svn branchement: comment configurer git config

[remote "origin"] 
    url = url-of-git-repository 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[svn-remote "svn"] 
    url = url-of-svn-repository/trunk 
    fetch = :refs/remotes/git-svn 
[branch "master"] 
    merge = refs/heads/master 
    remote = origin 
... other branch information below (these are git branches) 

Maintenant que vous pouvez voir mon url svn distant va directement au coffre. Je l'ai lu en ajoutant ceci:

branches = branches/*:refs/remotes/* 

mais quand je crée une nouvelle branche alors il sera l'ajouter au tronc/branches /. Quand je n'ajoute pas la ligne, il ne sait pas quelle est la destination de la branche.

Une idée de comment résoudre ceci sans casser les branches existantes, le code, etc.?

Salue, Daan

Répondre

6

je crois que la configuration des branches est par rapport à l'URL svn-distance.

Voici notre configuration la façon dont il a été fait en faisant

git svn -s url-of-svn-repository/foo

(dans le dossier foo, nous avons le tronc normal/branches/structure tags)

[svn-remote "svn"] 
     url = url-of-svn-repository 
     fetch = foo/trunk:refs/remotes/trunk 
     branches = foo/branches/*:refs/remotes/* 
     tags = foo/tags/*:refs/remotes/tags/* 

Vous pouvez essayer ajuster à cette structure, ou faire de nouveau votre git svn clone avec le paramètre -s. Il va tout configurer pour vous (- standard-layout).

0

Ceci a été un article qui m'a aidé à faire travailler git avec svn avec un projet qui avait une structure de branche très peu orthodoxe (ce qui est normal pour les entreprises utilisant SVN pour une raison que j'ai peur).

http://www.dmo.ca/blog/20070608113513/

+0

Il serait de multiples façons mieux d'avoir plusieurs branches svn traitées sous la même section '[svn distant xxx]'. Vous n'avez alors pas besoin d'exécuter 'git svn fetch' pour chacune des branches séparément. Je pense aussi que les révisions svn courantes sont représentées comme des commits partagés simples dans le dépôt git en miroir. Vous pouvez avoir le '*' dans la définition 'branches' dans n'importe quel sous-répertoire du chemin, bien que vous ayez besoin d'éditer' .git/config' manuellement pour accomplir ceci. – FooF

Questions connexes