Svn diff does not display modified external files

I add some changes to the local repo and run svn diff, but the output is diffempty. But svn statusmarked my files as modified. These files are external elements, how can I use the command diffwith this?

+5
source share
4 answers

Here is a quote from the manual :

In addition to the svn checkout, svn update, svn switch, and svn export commands that actually manage non-overlapping (or disabled) subdirectories into which external items are checked, the svn status command also recognizes external definitions. It displays the X status code for disjoint external subdirectories, and then recurses into these subdirectories to display the state of the external elements themselves. You can pass the --ignore-externals option to any of these subcommands to turn off externals definition processing.

From the foregoing, we can conclude that only the mentioned commands support external ones.

I do not know why this is so, but I suspect that it was rather difficult to design correctly and was not high in the list of functions.

+3
source

. script, , , .

<?php
passthru('svn diff');
exec('svn propget svn:externals',$externals);
foreach($externals as $line) {
    list($local, $path) = explode(' ',$line);
    passthru('svn diff '.$local);
}
?>
+1

, , svn . , . svn, ,

Path: /home/....
Working Copy Root Path: /home/trunk
URL: https://svn.***.**/trunk
Repository Root: https://svn.***.**/
Repository UUID: 
Revision: **LAST_UPDATED_REVISION_Nr**

svn diff LAST_UPDATED_REVISION_Nr. :

svn diff -rHEAD address_of_your_file
+1

:

svn st -q | grep '^[AM]' | cut -c9- | xargs svn diff

:

  • svn st -q SVN ( "" ).
  • grep '^[AM]' .
  • cut -c9- Deletes the metadata and then goes through the paths.
  • xargs svn diffruns svn difffor each file.
+1
source

All Articles