2010-05-08 5 views
3

Je travaille actuellement sur un projet SVN extrait avec quelques plugins pour ce projet. Je veux garder tout ce travail - y compris la version actuelle de ma commande SVN dans un seul dépôt git.Commit SVN copie de travail dans le dépôt Git

Je pensais avoir atteint ce but en vérifiant dans la copie de travail SVN à git. Cependant, quand j'ai fait un tirage sur un nouvel ordinateur, la copie de travail SVN avait été corrompue. En particulier, il semblait que git n'avait pas vérifié les dossiers .svn/tmp/et .svn/props /.

J'ai maintenant fait une nouvelle vérification du projet SVN. Y at-il un moyen pour moi d'ajouter les dossiers ignorés à mon repo git (l'état git les ignore même si mon .gitignore est vide) ou forcer SVN à les régénérer?

Répondre

2

Les extensions de fichiers commençant par une période sont considérées comme des fichiers cachés par convention. Donc, je ne suis pas expert Git, mais je suppose que Git ignore ces fichiers par défaut. Puis-je vous demander ce que vous espérez accomplir en gardant svn meta data dans Git?

+0

Je veux utiliser git pour gérer mon travail sur un correctif vers un projet open source qui utilise svn. Mon approche (quand je l'ai fait fonctionner) me permettra de faire plusieurs révisions git à mon patch et d'utiliser encore tortoisesvn pour générer facilement un fichier patch. Tout cela repose sur l'enregistrement des métadonnées afin que les outils svn normaux fonctionnent toujours. – mchr

+0

Mais si git ne surveille pas/change les répertoires .svn, ils sont conservés et quand vous avez fini, vous pouvez les utiliser pour générer le correctif. btw, il serait également trivial de générer le correctif juste en écrasant une nouvelle commande. Si vous renommez ou déplacez des fichiers, ce n'est pas comme si cette information allait être transférée de Git à SVN, donc être en mesure d'enregistrer les fichiers .svn n'est pas beaucoup plus utile que d'avoir une autre copie vierge à votre disposition. –

+0

Ce sont toutes des suggestions judicieuses. Cependant, je préférerais être capable de tirer rapidement mon repo, y compris la copie de travail svn et avoir tout "juste travailler". Il semble que ce n'est pas possible, donc demain matin, je vais écrire un script rapide pour régénérer les répertoires tmp et les accessoires manquants. – mchr

1

N'oubliez pas que si certains de ces répertoires .svn/tmp/ et .svn/props/ sont vides, ils ne seront pas simplement ajoutés à un dépôt git.
Ceci est by design et n'a rien à voir avec .gitignore.

+0

J'ai oublié la restriction de répertoire vide. Vraisemblablement, je pourrais résoudre ce problème en écrivant un script pour régénérer l'un de ces répertoires manquants. – mchr

+0

Votre représentant a été recalculé comme demandé. –

+0

@Bill: Merci pour le recalc rep :) – VonC

0

Pourquoi ne pas utiliser clone git svn:

http://ftp.kernel.org/pub/software/scm/git/docs/git-svn.html

Cela importera votre histoire entière SVN dans un dépôt git.

+0

Je n'étais pas au courant de git-svn. On dirait qu'il pourrait réaliser ce que je veux mais se sent moins intuitif. Pouvez-vous recommander un bon tutoriel pour commencer avec git-svn? – mchr

Questions connexes