You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Martin Hauner <ha...@web.de> on 2004/09/10 15:33:52 UTC

peg revision / svn_client_merge_peg ?

Hi,

1) what exactly is a peg revision?

2) from an svn client perspective is there any need to support both
    merge methods? Is there another use case to have two source
    paths in svn_client_merge apart from handling renames?

-- 
Martin,  http://subcommander.tigris.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: peg revision / svn_client_merge_peg ?

Posted by Martin Hauner <ha...@web.de>.
Greg Hudson wrote:

> On Fri, 2004-09-10 at 11:33, Martin Hauner wrote:
>>2) from an svn client perspective is there any need to support both
>>    merge methods? Is there another use case to have two source
>>    paths in svn_client_merge apart from handling renames?
> 
> If I want to merge the changes between two tags, or between a branch and
> a trunk, I'll want to specify two paths.

I see.  So I have to support both methods... Let's see how i get this
into a single dialog.

Thanks.

-- 
Martin http://subcommander.tigris.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: peg revision / svn_client_merge_peg ?

Posted by Greg Hudson <gh...@MIT.EDU>.
On Fri, 2004-09-10 at 11:33, Martin Hauner wrote:
> 1) what exactly is a peg revision?

Because we support directory versioning, it can sometimes be a little
tricky to identify what you're talking about.  If I tell you I want to
merge http://foo/bar/baz from rev 1000 to rev 2000 into the current
working dir, which /foo/bar/baz am I talking about?  The pah bar/baz
might identify three different objects at rev 1000, rev 2000, and the
head revision.

The peg revision nails down which file or directory I'm talking about,
without affecting the operative range of the merge.  So if revision1 is
1000 and revision2 is 2000 and peg_revision is 3000, then we look up the
object bar/baz as of revision 3000 and merge the changes it experienced
between revs 1000 and 2000.

> 2) from an svn client perspective is there any need to support both
>     merge methods? Is there another use case to have two source
>     paths in svn_client_merge apart from handling renames?

If I want to merge the changes between two tags, or between a branch and
a trunk, I'll want to specify two paths.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: peg revision / svn_client_merge_peg ?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Fri, 2004-09-10 at 10:33, Martin Hauner wrote:
> Hi,
> 
> 1) what exactly is a peg revision?

A "peg object" is the object you're tracing history on.  It's made out
of (peg-revision, peg-path) pair -- the way you'd locate any object in
the repository.

For example, if using an svn 1.1 client, the command:

   svn cat -r5 foo.c

...does history tracing, starting with a "peg object" of foo.c@BASE,
then tracing renames back to r5.  You would see the contents of the file
in r5, no matter how many renames it went through.  In this example, The
peg-revison is BASE.

> 
> 2) from an svn client perspective is there any need to support both
>     merge methods? Is there another use case to have two source
>     paths in svn_client_merge apart from handling renames?

I don't understand... please explain your question in more detail.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: peg revision / svn_client_merge_peg ?

Posted by Benjamin Pflugmann <be...@pflugmann.de>.
Hello.

On Fri 2004-09-10 at 17:33:52 +0200, Martin Hauner wrote:
> 
> 1) what exactly is a peg revision?

If you say, "give me /path/file at revision 43", Subversion goes to
revision 43 and looks for /path/file.

If you say "give me /path/file at revision 43, pegged at revision 50",
Subversion goes to the peg revision, 50, looks for /path/file and then
follows that back to revision 43, regardless of the name it had in
revision 43.

That feature is mainly useful, when a file got renamed/moved/copied in
the past, and in conjuntion with a working copy, where the peg
revision is automatically filled in to be BASE, IIRC. (But it's not
limited to that).

> 2) from an svn client perspective is there any need to support both
>    merge methods? Is there another use case to have two source
>    paths in svn_client_merge apart from handling renames?

Dunno. Someone else needs to answer this.

Bye,

	Benjamin.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org