web-dev-qa-db-fra.com

GIT-SVN: mise à jour GIT Repo du serveur SVN centralisé

Je travaille sur un projet pour lequel tout le monde utilise SVN comme serveur centralisé et tout le monde pousse les modifications qu'ils font sur ce serveur. Je veux utiliser Git localement et je suis assez nouveau à git svn. J'ai fait un git svn clone du référentiel avec git svn clone -r HEAD https://svn.repo/app/branch A Je veux faire une mise à jour à travers Git.

J'ai besoin d'une commande "git tirant comme" mais de tirer d'une révision spécifique du représentant du serveur SVN. Y a-t-il également une commande "Fetch comme" pour aller chercher une révision spécifique du serveur SVN?

Je n'ai pas .svn Dossiers dans mon projet cloné et git remote ne me donne rien. Cependant j'ai fait un git config -l Et je reçois l'URL du serveur SVN, je suis donc lié au serveur SVN. Je ne sais pas comment chercher ou tirer cependant.

Merci!

23
Jacob Krieg

Meilleur moyen de travailler sur un référentiel Subversion via Git:

  1. git svn init -s https://svn.repo/app/ myrepo En supposant que sous https: //svn.repo/app/ Le repo contient la norme /trunk, branches et tags sous-répertoires
  2. Fait une git svn fetch Dans myrepo jusqu'à ce que plus rien de commettre ne soit récupéré (peut prendre assez de temps et abandonne parfois sous Windows).
  3. Checkout une branche de subversion spécifique ou une tronc via git checkout -b trunk remotes/trunk

Ensuite, vous pouvez simplement parcourir, pirater et vous engager dans votre repo git contenant toutes les commissions de subversion et les branches.

  • Tirer dans les nouveaux engagements de SVN Utilisez git svn rebase
  • Pousser vos engagements locaux dans l'utilisation de svn git svn dcommit

Pour passer à une révision de subversion spécifique, vous devez seulement parcourir l'histoire via git log et la recherche d'un commit mettant en mémoire la reflétion de la Subversion Subversion. Vous pouvez facilement repérer la révision de la subversion dans le git-svn-id: Ligne du message de validation. Il suffit d'utiliser un git checkout <commithash> Pour vérifier explicitement cette version.

44
bentolor