Comment obtenir diff entre tous les fichiers à l'intérieur de 2 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/ avec ce http://svn.boost.org/svn/boost/sandbox/boost/extension/ . Je veux obtenir un fichier diff. 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 commande sur Linux?

mise à jour: Nous avons donc eu une grande réponse . Mais cela fonctionne étrangement - il me semble qu'il montre que tous les fichiers (les mêmes fichiers) ont tous leurs contenus remplacés par des contenus identiques (alors que je sais à coup sûr qu'il n'y avait que 3-4 lignes de code changées)...

mise à jour 2: Pour réaliser ce dont j'avais vraiment besoin (fichier dif avec seulement les lignes vraiment changées, avec le style git, sur Linux) faire:

$ 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
69
demandé sur Community 2011-05-03 22:38:16

2 réponses

une fois que vous avez les arbres sources, p.ex.

diff -ENwbur repos1/ repos2/ 

encore mieux

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

et avoir une fissure à elle dans un bon outil graphique :)

  • -Isf ignorer l'essentiel de l'espace changements
  • -N de détecter les nouveaux fichiers
  • -u unifiée
  • - R recurse
133
répondu sehe 2011-05-03 20:39:34

vos urls ne sont pas dans le même dépôt, vous ne pouvez donc pas le faire avec la commande svn diff .

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 le faire, est d'exporter chaque repos en utilisant svn export , puis d'utiliser la commande diff pour comparer les 2 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
4
répondu yvoyer 2011-05-03 18:55:40