75 votes

Comment obtenir la différence entre tous les fichiers de deux dossiers qui sont sur le web ?

Donc je veux comparer ce dossier http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ con este http://svn.boost.org/svn/boost/sandbox/boost/extension/ . Je veux obtenir un fichier diff comme résultat. Ces dossiers sont sous le contrôle de svn mais je préfèrerais un fichier diff de style git (comme un montré ici ) J'ai essayé git diff mais cela ne semble pas fonctionner de cette façon pour les dossiers web. Alors comment faire la même chose avec une seule commande sous Linux ?

Mise à jour : Donc nous avons une grande réponse . Mais cela fonctionne étrangement - il me semble que cela montre que tous les fichiers (les mêmes fichiers) ont tout leur contenu remplacé par le même contenu (alors que je sais avec certitude qu'il n'y a eu que 3-4 lignes de code modifiées)...

Mise à jour 2 : Pour obtenir ce dont j'avais vraiment besoin (fichier dif avec seulement les lignes réellement modifiées, avec le style git, sous Linux), faites :

$ svn export http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ repos2 --native-eol CRLF
$ svn export http://svn.boost.org/svn/boost/sandbox/boost/extension/ repos --native-eol CRLF
$ git diff repos repos2 > fileWithReadableDiff.diff

150voto

sehe Points 123151

Une fois que vous avez les arbres sources, par ex.

diff -ENwbur repos1/ repos2/ 

Encore mieux

diff -ENwbur repos1/ repos2/  | kompare -o -

et essayez de le faire avec un bon outil graphique :)

  • -Ewb ignore l'essentiel des changements d'espaces blancs
  • -N détecter les nouveaux fichiers
  • -u unified
  • -r recurse

4voto

yvoyer Points 4028

Vos urls ne sont pas dans le même référentiel, donc vous ne pouvez pas le faire avec la fonction svn diff commandement.

svn: 'http://svn.boost.org/svn/boost/sandbox/boost/extension' isn't in the same repository as 'http://cloudobserver.googlecode.com/svn'

Une autre façon de procéder est d'exporter chaque dépôt en utilisant svn export puis utilisez la commande diff pour comparer les deux répertoires que vous avez exportés.

// Export repositories
svn export http://svn.boost.org/svn/boost/sandbox/boost/extension/ repos1
svn export http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ repos2

// Compare exported directories
diff repos1 repos2 > file.diff

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