You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by "Cufi, Carles" <ca...@nordicsemi.no> on 2010/05/18 08:04:14 UTC

svn:mergeinfo resurrecting from the dead

Hi there,

I have read all the info I have been able to found with Google regarding svn:mergeinfo but I have come across a case that does not seem to be covered in the internet archives. 

I had 60 odd files sparsely distributed in my trunk which contained the svn:mergeinfo property (from a partial merge done by a member of my team) and I wanted to get rid of those since they were cluttering up my merging branches. So what I did is to delete the svn:mergeinfo property from all files in the trunk except for the root of the trunk itself.

My trunk is now clean of svn:mergeinfo, i.e. this:

trunk$ svn propget svn:mergeinfo --depth=infinity
returns only merge info in the root of trunk, which is fine. 

When I create a branch it is fine too, with svn:mergeinfo only at the root of the branch. But then I try to update the branch with the latest trunk like so:

svn merge http://xxxxx/trunk

And then the original bunch of 60 odd files get the svn:mergeinfo property added. So the properties are not on the trunk, not on the branch, they appear magically whenever I update the branch with the trunk. I am trying to find out where can these properties be stored since I completely removed them from the trunk before I created my branch.

Client/Server versions:

Client: svn, version 1.6.11 (r934486) [cygwin]
Server: 1.6.6 (r40053) [Linux]

I can provide log files if required.

Thank you very much in advance!

--
Carles 

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
> You can always create a repo on your local machine. I doubt that the
> protocol has anything to do with your issue.

True, I will try this and report back.

Thanks!

Carles

RE: svn:mergeinfo resurrecting from the dead

Posted by Bob Archer <Bo...@amsi.com>.
> > Can you create a new repository... import your project in, create a
> > branch, do a merge and duplicate this? If so... show ALL the commands
> that
> > you did from creating the repo into a script. I'm guessing there is some
> > command or something you do and we are not seeing the full picture.
> >
> 
> Unfortunately I do not have ssh access to the svn server. This is a
> corporate environment and although our team manages its own svn repo I
> cannot log into the server. However, I will speak to the sysadmin to see
> if he can do that for me and post the results here.
> 

You can always create a repo on your local machine. I doubt that the protocol has anything to do with your issue.

BOb

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
Hi there,

Thanks for your reply.
 
> Can you create a new repository... import your project in, create a
> branch, do a merge and duplicate this? If so... show ALL the commands that
> you did from creating the repo into a script. I'm guessing there is some
> command or something you do and we are not seeing the full picture.
>

Unfortunately I do not have ssh access to the svn server. This is a corporate environment and although our team manages its own svn repo I cannot log into the server. However, I will speak to the sysadmin to see if he can do that for me and post the results here.

 
> For example, you say you run
> 
> svn propdel svn:merginfo -R
> 
> on trunk. Do you then commit that? You don't say. You don't say if you are
> branching from a working copy or using a URL.

Yes, I do commit that, and in fact I looked at the full log today since this issue puzzles me to such an extent that I was doubting of my own actions already, but the commit is there, and the fact is that if I do a clean checkout of the trunk there's no svn:mergeinfo there at all. There isn't any on the branch either, so for some reason old, deleted svn:mergeinfo properties are reappearing when merging. Those properties were accidentally added a while back while doing partial merges.

Carles

Re: svn:mergeinfo resurrecting from the dead

Posted by Stein Somers <ss...@opnet.com>.
On 18-May-10 18:22, Cufi, Carles wrote:
> Then I checked out newbranch,

In our series of bleeding obvious questions: you did check out to a new 
working copy, right? It would be hard to do otherwise.

On 18-May-10 15:12, Cufi, Carles wrote:
 > something relatively similar happening, where svn:mergeinfo reappears 
after deleting it?

I doubt there's any useful similarity. It's just that any remote-to-WC 
copy of a file or folder adds useless mergeinfo. So not dug up from long 
gone history, and there's nothing mysterious about it, just a simple 
reproducible bug. But it may inspire you to find a way out, so here is 
how to reproduce it using bash:

svnadmin create r
mkdir i i/trunk
echo hello world >i/trunk/file
svn import i/trunk file:///$PWD/r/trunk -m imported
svn copy file:///$PWD/r/{trunk,knurt} -m branched
svn co file:///$PWD//r/trunk w
svn merge file:///$PWD//r/knurt w
svn ci w -m merged
svn up w
svn cp w/file w/wc_copy
svn cp file:///$PWD/r/trunk/file w/remote_copy
svn propget svn:mergeinfo w -R

-- 
Stein

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
Hi there,

> Ah... iirc this is a bug that happens when you have externals. Can you
> remove the externals and try it? You can always put them back later.

For some reason, even without removing the externals, an extran cleanup of both the branch and the trunk now seems to have done the trick. All clean of svn:mergeinfo.

Thanks for all your interest and advice!

Carles

RE: svn:mergeinfo resurrecting from the dead

Posted by Bob Archer <Bo...@amsi.com>.
> Hi there,
> > Are you using externals?
> 
> Yes, we use externals both for importing code from other repos and also as
> symbolic links within our repo, since our build system runs on Windows
> which has no support for native symbolic links.
> 
> Thanks!

Ah... iirc this is a bug that happens when you have externals. Can you remove the externals and try it? You can always put them back later.

BOb

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
Hi there,
> Are you using externals?

Yes, we use externals both for importing code from other repos and also as symbolic links within our repo, since our build system runs on Windows which has no support for native symbolic links.

Thanks!

Carles

RE: svn:mergeinfo resurrecting from the dead

Posted by Bob Archer <Bo...@amsi.com>.
> Hi there,
> > You don't say if you are
> > branching from a working copy or using a URL.
> 
> I deleted the properties from the trunk, commited that, then went:
> 
> svn cp http://myrepo/trunk http://myrepo/newbranch
> 
> Then I checked out newbranch, worked on it and went:
> 
> Newbranch$ svn merge http://myrepo/trunk
> 
> to update newbranch with the latest trunk.
> 
> Carles

Are you using externals?

BOb

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
Hi there,
> You don't say if you are
> branching from a working copy or using a URL.

I deleted the properties from the trunk, commited that, then went:

svn cp http://myrepo/trunk http://myrepo/newbranch

Then I checked out newbranch, worked on it and went:

Newbranch$ svn merge http://myrepo/trunk

to update newbranch with the latest trunk.

Carles

RE: svn:mergeinfo resurrecting from the dead

Posted by Bob Archer <Bo...@amsi.com>.
> > I'm in the same environment as you describe, but the only times
> > svn:mergeinfo mysteriously reappear is when using svn copy, not merges.
> 
> That's interesting. So you have something relatively similar happening,
> where svn:mergeinfo reappears after deleting it? It could be related I
> guess.
> 
> 
> > > And then the original bunch of 60 odd files get the svn:mergeinfo
> > property added.
> >
> > Maybe because amongst the unmerged revisions are old changesets that
> > include updates to the svn:mergeinfo property of these files? No, you
> > wrote you created the branch on a clean trunk.
> 
> Yes, the trunk is clean, I actually ran this on it:
> 
> svn propdel svn:mergeinfo -R
> 
> and then I branched off, and the branch didn't have any svn:mergeinfo
> properties set on it. In fact, it's not once or twice, I've gone through
> this several times already for several feature branches, and every time
> the same thing happens: branch clean, update branch with clean trunk,
> svn:mergeinfo appears.
> 
> > Maybe someone copied old revisions of files and their mergeinfo into
> > this clean trunk? But then you would notice the mergeinfo reappear in
> > trunk as well.
> 
> Nope, since I consistently verify the trunk and it is clean of
> svn:mergeinfo.
> 
> It is really a mystery, and I am beginning to think there's something
> wrong with my svn repo on the server, maybe it's corrupted in some way.
> 

Can you create a new repository... import your project in, create a branch, do a merge and duplicate this? If so... show ALL the commands that you did from creating the repo into a script. I'm guessing there is some command or something you do and we are not seeing the full picture. 

For example, you say you run 

svn propdel svn:merginfo -R 

on trunk. Do you then commit that? You don't say. You don't say if you are branching from a working copy or using a URL. 

BOb

RE: svn:mergeinfo resurrecting from the dead

Posted by "Cufi, Carles" <ca...@nordicsemi.no>.
Hi Stein,

> I'm in the same environment as you describe, but the only times
> svn:mergeinfo mysteriously reappear is when using svn copy, not merges.

That's interesting. So you have something relatively similar happening, where svn:mergeinfo reappears after deleting it? It could be related I guess.


> > And then the original bunch of 60 odd files get the svn:mergeinfo
> property added.
> 
> Maybe because amongst the unmerged revisions are old changesets that
> include updates to the svn:mergeinfo property of these files? No, you
> wrote you created the branch on a clean trunk.

Yes, the trunk is clean, I actually ran this on it:

svn propdel svn:mergeinfo -R

and then I branched off, and the branch didn't have any svn:mergeinfo properties set on it. In fact, it's not once or twice, I've gone through this several times already for several feature branches, and every time the same thing happens: branch clean, update branch with clean trunk, svn:mergeinfo appears.

> Maybe someone copied old revisions of files and their mergeinfo into
> this clean trunk? But then you would notice the mergeinfo reappear in
> trunk as well.

Nope, since I consistently verify the trunk and it is clean of svn:mergeinfo.

It is really a mystery, and I am beginning to think there's something wrong with my svn repo on the server, maybe it's corrupted in some way.

Thanks!

Carles

Re: svn:mergeinfo resurrecting from the dead

Posted by Stein Somers <ss...@opnet.com>.
I'm in the same environment as you describe, but the only times 
svn:mergeinfo mysteriously reappear is when using svn copy, not merges.

On 18-May-10 10:04, Cufi, Carles wrote:
> And then the original bunch of 60 odd files get the svn:mergeinfo property added.

Maybe because amongst the unmerged revisions are old changesets that 
include updates to the svn:mergeinfo property of these files? No, you 
wrote you created the branch on a clean trunk.

Maybe someone copied old revisions of files and their mergeinfo into 
this clean trunk? But then you would notice the mergeinfo reappear in 
trunk as well.

-- 
Stein