How to get diff between all files inside 2 folders that are on the web?

110,120

Solution 1

Once you have the source trees, e.g.

diff -ENwbur repos1/ repos2/ 

Even better

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

and have a crack at it in a good gui tool :)

  • -Ewb ignore the bulk of whitespace changes
  • -N detect new files
  • -u unified
  • -r recurse

Solution 2

You urls are not in the same repository, so you can't do it with the svn diff command.

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

Another way you could do it, is export each repos using svn export, and then use the diff command to compare the 2 directories you exported.

// 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
Share:
110,120

Related videos on Youtube

Rella
Author by

Rella

Hi! sorry - I am C/C++ noobe, and I am reading a book=)

Updated on June 08, 2022

Comments

  • Rella
    Rella almost 2 years

    So I want to compare this folder http://cloudobserver.googlecode.com/svn/branches/v0.4/Boost.Extension.Tutorial/libs/boost/extension/ with this http://svn.boost.org/svn/boost/sandbox/boost/extension/. I want to get a diff file as a result. These folders are under svn control but I'd prefer git styled diff file (like one shown here) I tried git diff but it seems not to work that way for web folders. So how to do the same thing with one command on Linux?

    Update: So we had a great answer. But it works strangely - it seems to me it shows that all files (same files) have all theire contents replaced with very same contents (while I know for sure that there were only like 3-4 code lines changed at all)...

    Update 2: To achieve what I really needed (dif file with only really changed lines, with git styling, on Linux) do:

    $ 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
    
    • sehe
      sehe about 13 years
      haha; I just noticed you linked to my diff with one shown here... wotta coincidence
  • Rella
    Rella about 13 years
    I replaced last line with git diff repos1 repos2 > file2.diff and it got more informative... but it seems to me it shows that all files (same files) have all thare contents replaced with wary same contents (while I know for sure that there were only like 3 code lines changed at all)...
  • Rella
    Rella about 13 years
    so... yep - loved your diff style, sent a full diff patch on yours+mine boost.extension to Jeremy... (see this post update for my way of getting it)... I still wonder how to do such thing with one line=)
  • sehe
    sehe about 13 years
    Well thanks for the accept; I guess my original (rev. 2) instructions in that other post hid my secret: I used 'git svn clone ... svn..../branches/v0.4' and just edited locally. It then becomes a simple git diff or git format-patch depending on how much work was done
  • Aaron
    Aaron over 8 years
    didn't know about kompare before, this is exactly what I was looking for. Thanks
  • gilad905
    gilad905 almost 5 years
    would be nice to add a reference to kompare as it's an external package (at least on my Ubuntu 16.04)
  • Hybris95
    Hybris95 over 4 years
    You can totally use notepad++ with Language set on "Diff" it works like a charm (without kompare)
  • sehe
    sehe over 4 years
    @Hybris95 does that do side-by-side diffs? Personally, I don't take to context/unified diffs too well