99 votes

Git format-patch pour être compatible svn?

Est-il possible d'obtenir un patch créé avec git format-patch pour être compatible svn afin que je puisse les soumettre à un repo svn?

Je suis fonctionne à partir d'un repo svn sur github et souhaitez faire mes changements sur le repo. J'ai besoin de créer un patch pour ce faire, cependant, le patch ne peut pas être appliquée depuis git formats que le patch est différent alors svn. Est-il un secret que je n'ai pas encore découvert?

Mise à JOUR: Même si actuellement il n'existe pas de script ou natif git façon de le faire, je n'ai réussi à trouver un poste plus tôt cette année sur la façon d'effectuer manuellement. J'ai suivi les instructions et avait obtenu de mon git correctifs pour fonctionner avec svn.

Si quelqu'un pouvait prendre un coup de couteau à l'écriture d'un script pour accomplir cette et de contribuer au projet git, je suis tout le monde serait très apprécié.

http://kerneltrap.org/mailarchive/git/2008/1/15/570308/thread#mid-570308

96voto

Nicholas Smith Points 4792

J’ai toujours de Google cela mais la façon dont j’ai trouvé qui fonctionne parfaitement (pour moi) est :

  • Créer le patch avec `` , la partie du maître et de direction sont facultatif, dépend la façon dont vous voulez obtenir vos diffs.
  • Envoyez-le partout où s’appliquent avec `` .

Toujours, elle semble fonctionner très bien pour moi et semble être la méthode la plus simple que j’ai pu rencontrer.

21voto

Wallace Wong Points 211

La réponse courte est patch - p1 -i {patch.file}

S’il vous plaît se référer à ce blog pour plus d’informations : création-subversion-patchs-avec-git

17voto

Christoph Points 141

Voici un script d’aide pour faire un diff contre la dernière svn changeset et la validation de donnée : http://www.mail-archive.com/dev@trafficserver.apache.org/msg00864.html

10voto

Norman Ramsey Points 115730

SVN ne peut probablement pas comprendre la sortie de l' git diff -p, mais vous pouvez recourir à la force brute:

  1. Faire deux clones de votre repo
  2. Dans un clone de vérifier vos dernières commandes
  3. Dans l'autre clone de la caisse ce qui est équivalent à la propriété svn en amont. Si vous avez planifié à l'avance vous avez une copie de svn en amont sur sa propre branche, ou vous ont marqué la dernière version svn. Si vous n'avez pas planifié à l'avance, l'utilisation de la date ou de gitk de trouver le git de hachage SHA1 qui se rapproche le svn de l'état.
  4. Maintenant calculer un vrai patch en cours d'exécution diff -r sur les deux clones.

10voto

Bert Huijben Points 13856

Subversion

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X