svn diff ignores externals
Hi, I have a repository with a structure which mixes some normal and external repositories as follows - code_dir | `- src_dir | `- external_1 | `- dir_1 | `- external_2 where code_dir, src_dir and dir_1 are located on a repository under my control, while external_1 and external_2 are defined by means svn:externals keywords. I have noticed that old svn versions were able to track down modified files both in dir_1 and external_* directories. The last version (I am running 1.6.9) completely ignores external_1 and external_2 and give a list of modified files located in dir_1 only. If I run "svn diff code_dir/src_dir/external_1" I am able to see the list of modified files in that directory too, of course. I know I am missing something trivial, but what? I have not found any hint in the svn book... Thanks in advance for your help, Max
Re: svn diff ignores externals
Hi Stefan, thank you very much for your explanations. Actually, I am not complaining about what default behavior should be - either the recursive or not recursive one would be to me perfectly valid. Unfortunately, svn diff is not able to recursively follow externals, as it does not accept the option -R svn diff -R Subcommand 'diff' doesn't accept option '-R [--recursive]' so I have not any option to check all dirs at once (sigh) So, as you have suggested, I am going to file an enhancement request, it may be someone will take up the challenge ;) I will be also willing to test the modification once it will be implemented! Have a nice day, Max On Saturday 13 March 2010, Stefan Sperling wrote: > On Sat, Mar 13, 2010 at 12:19:03PM +0100, iprmaster wrote: > > Hi Neels, > > > > thank you for your answer, but I can confirm that other commands > > (i.e. svn update) do step into external folders, even in the latest > > version ;) > > > > Does anyone else have any suggestion? > > Some commands step into externals, and some don't. > E.g. commit certainly does *not* recurse into externals by default. > > I don't know what the plan was for 'svn diff' wrt externals. > It happens to not recurse, but I'm not sure if this was a concious > decision or not. Skimming the code (in libsvn_wc/diff.c) for 5 minutes > does not really turn up an answer. It probably just happened to behave > the way it does now, and nobody ever questioned this behaviour (until > you showed up :) > > If you really care a lot about this, please file an issue asking > for an enhancement such that svn diff shows modifications to externals > by default, but does not if --ignore-externals is specified. > > But there really is no reason for defaulting to one way or the other, > either use case is perfectly valid. Though having to list all externals > explicitly to have them included in the diff is probably less easy than > specifying --ignore-externals if you don't want to see modifications > made to externals in the diff. Not sure. > > Stefan >
memory-leak - svn::repos instances are not destroyed properly
Hi, developing an application dealing with many repositories the existence of paths within that repositories had to be checked. Using something like: my $repos = SVN::Repos::open($localpath) or die "no such repo"; my $fs= $repos->fs; $ispath = $repos->fs->revision_root( $fs->youngest_rev)->is_dir($path); undef($fs); undef($repos); resulted in a persistent memory usage of approx. 300MB for ~ 3000 calls, though undefing the references of the objects. Attached is a small sample script, showing the problem with 1000 calls - resulting in 200M with nothing but the directory in question in the repository. Repository-size seems to matter. (the application uses near productive repos) running with libsvn1 1.6.6dfsg-2ubuntu1.3 libsvn-perl 1.6.6dfsg-2ubuntu1.3 perl 5.10.1-8ubuntu2.1 kind regards, Max Voit checkleak.pl Description: Perl program
Subversion :: Mod dav_svn :: SVNMasterURI :: Message is not setting when i commit
Hi Everyone!, I was looking through the internet and didn't find any useful information. I'm asking you:) And would appreciate any help. We have 2 SVN servers, using apache dav_svn. (Master located in the US and slave located in EU) I setup replication using svnsync. And it's working fine. Slave is used to checkout files, and commits go through proxy: DAV svn SVNPath /opt/svn/ SVNMasterURI http://10.0.0.1:8787/repositories/repo After commit all data goes to master and it works absolutely fine. However, message is empty. For example mnaboka@vm03-ai:~/test/mnaboka$ svn log r19171 | user | 2011-10-31 14:21:46 +0300 (Mon, 31 Oct 2011) | 1 line r19170 | user | 2011-10-31 14:17:19 +0300 (Mon, 31 Oct 2011) | 1 line BUT if i cd /opt/svn/db/revprops/ and i can find all messages i set. I dont really know how to debug it. I turned verbose but dont see any errors. Could you please help me out? Thanks ps. on Master i'm using Linux and svn 1.6.1 (r37116). on Slave Linux and svn 1.6.6 (r40053)
Question regarding reverse merge of added file
Hi all, We've just upgraded our subversion server from 1.4.6 to 1.9.7 and now I'm getting a strange merge conflict, when I'm trying to do a reverse merge on a baseline (trunk). The situation is as follows: /project/branches/it/33931/db/data_update.sql <- Branch created from /project/branches/releases/23 in r374471, File added in revision r374494 /project/branches/releases/23/db/data_update.sql <- File added via merge of r374471- 374494 of /project/branches/it/33931 Now I've found out that this merge was wrong and want to reverse it. I tried to run the reverse merge on the baseline: svn log -v db/data_update.sql r378753 | maxbernhardt | 2018-01-04 15:06:11 +0100 (Do, 04 Jan 2018) | 7 lines Changed paths: M /project/branches/releases/23/db A / project/branches/releases/23/db/data_upgrade.sql (from /project/branches/it/33931/db/data_upgrade.sql:374494) Prodbuild: Committing svn://pbsvn/project/branches/it/33931 svn info Path: . Working Copy Root Path: /home/cmi/wc/project/23 URL: svn://pbsvn/project/branches/releases/23 Repository Root: svn://pbsvn Revision: 379041 svn merge -c-374494 svn://pbsvn/project/branches/releases/23 . --- Reverse-merging r374494 into '.': C update_data.sql --- Recording mergeinfo for reverse merge of r374494 into '.': G . Summary of conflicts: Tree conflicts: 1 svn st M db C db/data_update.sql > local edit, incoming delete upon merge Summary of conflicts: Tree conflicts: 1 svn diff db/data_update.sql Since a tree conflict can only be resolved to the state of the working copy and the file still exists in the working copy of the baseline, how can I do a reverse merge to remove the file from the baseline without creating a tree conflict ? I know, I can remove the file manually by running "svn rm", but if there are more complicated merges in the future, this can only be seen as a workaround. Can you please explicitly cc me, because I'm not subscribed to mailing list ? Cheers Max