web-dev-qa-db-fra.com

git svn clone d'un seul répertoire du dépôt SVN

J'essaie d'utiliser git svn pour cloner un seul répertoire d'un référentiel SVN dans un référentiel Git.

Si j'utilise git svn clone svn+ssh://path/to/repo/trunk/directory, J'obtiens un dépôt Git sans branches qui reflètent les branches dans le dépôt SVN source.

Si j'utilise git svn --stdlayout svn+ssh://path/to/repo/trunk/directory, Je reçois un dépôt Git vide. Voici la sortie de la commande:

Initialized empty Git repository in /directory/.git/
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory'
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories

J'avais lu que la façon de corriger ce qui précède était d'ajouter une plage de révision comme -r 1000:HEAD, cela produit toujours un dépôt vide. La sortie est:

Initialized empty Git repository in /directory/.git/
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo

Des idées sur la façon de cloner un sous-répertoire d'un référentiel SVN en utilisant git-svn qui récupère toujours toutes les branches et balises du référentiel SVN source?

33
oconnor0

Vous ne voulez pas de mise en page standard, vous voulez quelque chose comme ceci:

git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory
53
Mykola Gurov

Préparez et entrez dans le répertoire du projet local:

mkdir local/project/path
cd local/project/path

Initialisez le référentiel git local avec svn remote et récupérez les données:

git svn init http://my_svn_server.com/repository/project/location
git svn fetch

Nous remercions Gabriel Saldaña: ​​ http://blog.gabrielsaldana.org/using-git-with-Subversion-repository-subdirectory/

29
Adrian Constantin