2016-06-02 4 views
0

Je sais que je peux utiliser pour cloner un répertoire git-svn dans une nouvelle Git prise en pension, mais comment puis-je utiliser git-svn pour cloner un seul fichier dans une nouvelle Git repo?git clone svn [avec un seul fichier]

Je dois diviser mon dépôt SVN en plusieurs dépôts GIT et j'ai besoin de cloner certains répertoires dans de nouveaux référentiels Git. En utilisant git-svn Je suis en mesure d'utiliser la commande suivante pour les répertoires:

git svn clone "svnRepo/folderName/" "C:/newGitRepo/FolderName" 

mais lorsque je tente:

git svn clone "svnRepo/folderName/style.css" "C:/newGitRepo/FolderName" 

cela ne fonctionne pas, il me donne le résultat suivant:

Initialized empty Git repository in C:/newGitRepo/FolderName/.git/ 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '...trunk/folderName/style.css' path not found 
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 
Invalid filesystem path syntax: Cannot replace a directory from within at /mingw64/share/perl5/site_perl/Git/SVN/Ra.pm line 308. 

Est-il possible de cloner un seul fichier dans un nouveau Git Repo?

(J'utilise cette version GIT: https://github.com/git-for-windows/git/releases/download/v2.8.3.windows.1/Git-2.8.3-32-bit.exe)

Répondre

0

La réponse courte est que vous ne pouvez pas le faire exactement comme vous le voulez, mais il y a une façon de le faire un peu différemment:

Si ce que vous voulez faire est une migration de svn à git, ce que je recommande est que vous décomposiez vos dépôts dans svn, alors vous pourrez utiliser git svn clone sur chaque dossier. Mais vous perdriez la possibilité de retourner au dépôt svn à partir de votre nouveau repo git (en utilisant git svn dcommit).

Une autre solution est de faire une caisse clairsemée : doc, voir aussi quelques détails dans Sparse checkout in Git 1.7.0? . Mais vous devrez toujours mettre tout le contenu de votre répertoire dans le dépôt git nouvellement créé, même si vous ne le voyez pas dans le répertoire de travail.