You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Helge Jensen <je...@slog.dk> on 2004/03/21 13:03:06 UTC
replace dir
In svn-0.37.0, the following idiom for replaceing one directory with
another worked:
svn rm foo
rm -rf foo
svn copy .../.../other foo
svn commit -m "replaced foo with other"
This does not work with SVN-1.0.1 (and r9111)
The reason seems to be that SVN no longer detects the delete of foo when
harvesting commits (in commit_util.c:harvest_committables) and also svn
status shows
A foo
not
R foo
as expected.
Bug# 1516 (http://subversion.tigris.org/issues/show_bug.cgi?id=1516)
seems to document this, but i _know_ it worked in 0.37 (using it every
day at work and home), and I really need the functionality (having
multiple projects sharing code via svn copy'ing stable versions into the
projects).
I've got the latest (right now 9111) svn checked out and compiled and
i'm trying to look at the harvest_commitables, function to find out
what's going on, and it seemingly only schedules an "add" in the commit.
Any hints, clues or directions on what may have brought on this change,
or where in particular to focus my interest are welcome.
I'm willing to use time to fix the issue and submit patches but i would
like a little bit of aid trying to understand the code, which seems a
little bit messy, probably because someone like myself, with limited
knowledge of the code-base sent some pathces :)
--
Helge
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: replace dir
Posted by Helge Jensen <je...@slog.dk>.
Philip Martin wrote:
> Helge Jensen <je...@slog.dk> writes:
> I just built 0.37 and it doesn't appear to work
That's very odd, i've been using it for more than a month, so I set out
to investigate.
I have now seen it doesn't work locally:
>>>>>>>>>>>>>>>>>>>>>
[hej@infosrv svntest]$ rpm -q subversion
subversion-0.37.0-1
[hej@infosrv svntest]$ svn co file:///home/hej/svntest/repo wc
Checked out revision 0.
[hej@infosrv svntest]$ svn mkdir wc/d1
A wc/d1
[hej@infosrv svntest]$ svn mkdir wc/d2
A wc/d2
[hej@infosrv svntest]$ svn commit -m 1 wc
Adding wc/d1
Adding wc/d2
Committed revision 1.
[hej@infosrv svntest]$ svn rm wc/d1
D wc/d1
[hej@infosrv svntest]$ rm -rf wc/d1
[hej@infosrv svntest]$ svn copy file:///home/hej/svntest/repo/d2 wc/d1
Checked out revision 1.
A wc/d1
Adding wc/d1
svn: Commit failed (details follow):
svn: Out of date: 'd1' in transaction '3'
<<<<<<<<<<<<<<<<<<<<<
But it works through https, I have been using this for a long time
now... infact since 0.37.0 came out... and it never occured to me to
that there could be a difference between the ra-local and ra-dav
interface before:
>>>>>>>>>>>>>>>>>>>>>
[hej@infosrv svntest]$ svn -m 'test' mkdir
https://infosrv.kamstrup.dk/svn/svntest
Committed revision 519.
[hej@infosrv svntest]$ svn -m 'test' mkdir
https://infosrv.kamstrup.dk/svn/svntest/d1
Committed revision 520.
[hej@infosrv svntest]$ svn -m 'test' mkdir
https://infosrv.kamstrup.dk/svn/svntest/d2
Committed revision 521.[hej@infosrv svntest]$ svn co
https://infosrv.kamstrup.dk/svn/svntest httpstest
A httpstest/d1
A httpstest/d2
Checked out revision 521.
[hej@infosrv svntest]$ svn rm httpstest/d1
D httpstest/d1
[hej@infosrv svntest]$ rm -rf httpstest/d1
[hej@infosrv svntest]$ svn copy
https://infosrv.kamstrup.dk/svn/svntest/d2 httpstest/d1
Checked out revision 521.
A httpstest/d1
[hej@infosrv svntest]$ svn commit -m 'test' httpstest/
Adding httpstest/d1
Committed revision 522.
[hej@infosrv svntest]$ rm -rf httpstest/
[hej@infosrv svntest]$ svn co https://infosrv.kamstrup.dk/svn/svntest
httpstest A httpstest/d1
A httpstest/d2
Checked out revision 522.
[hej@infosrv svntest]$ svn log -r522 -v httpstest/
------------------------------------------------------------------------
r522 | HelgeJensen | 2004-03-21 21:04:19 +0100 (Sun, 21 Mar 2004) | 1 line
Changed paths:
R /svntest/d1 (from /svntest/d2:521)
test
------------------------------------------------------------------------
<<<<<<<<<<<<<<<<<<<<<
> as far as I am aware it has never worked.
I havent noticed it not working locally, since I never tried, im SURE
the svn
Here's some info from the various programs:
[hej@infosrv svntest]$ rpm -qa | grep subversion
subversion-perl-0.37.0-1
subversion-0.37.0-1
subversion-devel-0.37.0-1
subversion-tools-0.37.0-1
subversion-server-0.37.0-1
subversion-python-0.37.0-1
[hej@infosrv svntest]$ svn --version
svn, version 0.37.0 (r1)
compiled Feb 4 2004, 12:37:06
Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
The following repository access (RA) modules are available:
* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
- handles 'http' schema
- handles 'https' schema
* ra_local : Module for accessing a repository on local disk.
- handles 'file' schema
* ra_svn : Module for accessing a repository using the svn network protocol.
- handles 'svn' schema
--
Helge (confused)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: replace dir
Posted by Philip Martin <ph...@codematters.co.uk>.
Helge Jensen <je...@slog.dk> writes:
> In svn-0.37.0, the following idiom for replaceing one directory with
> another worked:
>
> svn rm foo
> rm -rf foo
> svn copy .../.../other foo
> svn commit -m "replaced foo with other"
>
> This does not work with SVN-1.0.1 (and r9111)
>
> The reason seems to be that SVN no longer detects the delete of foo
> when harvesting commits (in commit_util.c:harvest_committables) and
> also svn status shows
>
> A foo
>
> not
>
> R foo
>
> as expected.
>
> Bug# 1516 (http://subversion.tigris.org/issues/show_bug.cgi?id=1516)
> seems to document this, but i _know_ it worked in 0.37 (using it every
> day at work and home)
I just built 0.37 and it doesn't appear to work, as far as I am aware
it has never worked.
$ svn rm wc/zig
D wc/zig
$ rm -rf wc/zig
$ svn cp wc/zag wc/zig
A wc/zig
$ svn ci wc
Adding wc/zig
svn: Commit failed (details follow):
svn: Out of date: 'zig' in transaction '2'
svn: Your commit message was left in a temporary file:
svn: '/home/pm/sw/subversion/obj/wc/svn-commit.tmp'
$ svn --version | head 1
svn, version 0.37.0 (dev build)
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org