web-dev-qa-db-fra.com

Git-svn et Eclipse?

Existe-t-il un plugin pour Eclipse pour git-svn? Je cherche un moyen de gérer le dépôt SVN avec Git (pour un changement rapide de branche, etc.)

45
Konrad Garus

Il ne semble pas y avoir de plugin Git pour Eclipse qui supporte encore git-svn.

EGit semble être le plugin Git le plus actif et le plus populaire pour Eclipse pour le moment et il ne prend pas en charge git-svn, mais rien ne vous empêche d'utiliser EGit avec Eclipse et d'interagir avec git- svn via la ligne de commande (ou via tortoise git par exemple).

bogue Eclipse 315264 est le bogue EGit pour la prise en charge de git-svn, et il ressemble à quelque chose que les responsables d'EGit sont prêts à implémenter, mais ils ont d'autres priorités atm. Assurez-vous donc de voter pour ce bogue si vous voulez la fonctionnalité.

52
ztatic

EGit est le seul plugin Git pour Eclipse pour le moment. Il ne prend pas en charge git-svn. Mais il existe un moyen de faire fonctionner EGit avec votre référentiel Subversion et cette approche fonctionne bien avec n'importe quel autre client Git.

SubGit est la solution côté serveur qui permet l'accès Git à vos référentiels Subversion ainsi que l'accès Subversion aux référentiels Git. Vous pouvez vous référer à documentation SubGit pour plus de détails, mais en général, ils sont assez simples:

$ subgit configure --layout auto $SVN_URL $GIT_REPO
# Adjust $GIT_REPO/subgit/config
#     to specify your branches, tags and other settings
# Adjust $GIT_REPO/subgit/authors.txt 
#     to introduce svn author names to their git counterparts
# Adjust $GIT_REPO/subgit/passwd
#     in case you have no SVN credentials cached on your machine
$ subgit install $GIT_REPO
$ ... translating ... a little git is gonna born right here ... 
$ TRANSLATION SUCCESSFUL

Après ça:

  1. Vous avez le référentiel Git à $ GIT_REPO synchronisé avec le référentiel SVN à $ SVN_URL; cette synchronisation est fiable bidirectionnelle, c'est-à-dire que les référentiels SVN et Git restent accessibles en écriture et SubGit prend en charge les modifications des deux côtés.

  2. SubGit a installé des hooks dans le répertoire $ GIT_REPO/hooks qui sont déclenchés sur chaque git Push vers ce référentiel.

  3. SubGit interroge le référentiel SVN afin de récupérer de nouvelles révisions.

Veuillez noter que vos coéquipiers peuvent utiliser le même miroir pour envoyer leurs modifications au référentiel Subversion. Dans ce cas, vous devez configurer le serveur Git, heureusement, SubGit prend en charge pratiquement tous les serveurs Git disponibles à l'heure actuelle:

Avertissement: je suis développeur SubGit; SubGit est un logiciel commercial avec des options gratuites pour les petites équipes, les projets Open Source et académiques.

6
vadishev

Bien que cette question ait 4 ans, je pensais partager ma solution de contournement récemment trouvée:

  1. Ouvrez "Configurations d'outils externes" (juste à côté de "Exécuter les configurations") et créez une nouvelle configuration "Programme".
  2. Pour le répertoire de travail, choisissez votre projet dans l'espace de travail.
  3. Entrer svn dcommit dans le champ de texte des arguments.
  4. Dupliquez la configuration et remplacez svn dcommit par svn rebase.

Vous pouvez maintenant lancer git svn dcommit et git svn rebase en deux clics.

0
Kirill Rakhman