January 28, 2011
Am 28.01.2011 12:30, schrieb Russel Winder:
> On Thu, 2011-01-27 at 13:33 -0800, Bill Baxter wrote:
>> On Thu, Jan 27, 2011 at 1:13 PM, Nick Sabalausky<a@a.a>  wrote:
> [ . . . ]
>>> Yea, and that's pretty much the original thing I was saying: It's nice that
>>> Hg seems to have it, but Git doesn't appear to be particularly interested in
>>> it.
>>
>> I think it's very handy for all the reasons you said.  I don't think
>> I've every had to use a big hex string when dealing with mercurial.
>> Maybe once or twice max.  Most of the stuff you do with repo history
>> as an individual developer is all about the local copy of the tree on
>> your system.  Globally unique identifiers aren't needed for that.  It
>> looks like Bzr does something similar.  Not sure why Git hasn't gotten
>> this particular nicety.
>
> Bazaar does indeed have revision numbers per branch.  Note that branch
> and repository is a different concept in Bazaar, unlike Git and
> Mercurial where they are fundamentally the same.
>
I don't know Git but in Mercurial speech a branch is what you get when using the 'hg branch' command. It's like a tag but a commit can only belongs to exactly one branch ('default' is the default branch). All commits to all branches are put together in one repository.

Mafi
January 28, 2011
On Thu, 27 Jan 2011 21:48:28 +0200, Don <nospam@nospam.com> wrote:

> No. Just one repository number, and one revision number. You just need to be sensible in how the clone numbers are assigned. That's easy.
> Basically every repository has a number of clone numbers it can assign.
> Every clone gets a subset of that range. Dealing with the situation when the range has run out is a bit complicated, but quite doable, and there are steps you can take to make it a very rare occurence.

Giving this some thought, I'm now confident that this is not possible. The assignment algorithm must take into account all variations of imaginable cases (cloning hierarchy up to a certain depth). We're talking about an algorithm must give a unique ID to each node in an implicit tree, not knowing about the state of the rest of the tree except the state of each new node's parent. The only sensible solutions will quickly generate humongous numbers for some or other common real-life scenarios.

I believe we're not still arguing that these numbers must also be useful beyond their terseness and uniqueness?

I think it's easier to just use the first 5 characters from Git's SHA-1 hash.

> I'm not have almost zero interest in this stuff, so I won't say any more. I'm really just commenting that it's not difficult to envisage an algorithm which makes exposing a random hash unnecessary.

You're welcome to not reply.

-- 
Best regards,
 Vladimir                            mailto:vladimir@thecybershadow.net
January 28, 2011
On Thu, 27 Jan 2011 21:48:28 +0200, Don <nospam@nospam.com> wrote:

> Yes, in theory that's true. In practice, I don't believe it.
> Just because you're using a DVCS doesn't mean you have no project organisation whatsoever. There's always going to be a repository that the release is made from.

Git was written specifically to aid the development of the Linux kernel, which is perhaps the most obvious counter-example to what you're stating. In the context of a distribution, the "main repository" of the project is the distro's kernel repository, where distro-specific development is made and upstream patches are merged in. The same can be said about Android, a widely-forked project.

-- 
Best regards,
 Vladimir                            mailto:vladimir@thecybershadow.net
January 28, 2011
Russel Winder, el 28 de enero a las 11:30 me escribiste:
> On Thu, 2011-01-27 at 13:33 -0800, Bill Baxter wrote:
> > On Thu, Jan 27, 2011 at 1:13 PM, Nick Sabalausky <a@a.a> wrote:
> [ . . . ]
> > > Yea, and that's pretty much the original thing I was saying: It's nice that Hg seems to have it, but Git doesn't appear to be particularly interested in it.
> > 
> > I think it's very handy for all the reasons you said.  I don't think I've every had to use a big hex string when dealing with mercurial. Maybe once or twice max.  Most of the stuff you do with repo history as an individual developer is all about the local copy of the tree on your system.  Globally unique identifiers aren't needed for that.  It looks like Bzr does something similar.  Not sure why Git hasn't gotten this particular nicety.
> 
> Bazaar does indeed have revision numbers per branch.  Note that branch and repository is a different concept in Bazaar, unlike Git and Mercurial where they are fundamentally the same.

WRONG about Git.

AFAIK only in Darcs branch and repository is the same.

-- 
Leandro Lucarella (AKA luca)                     http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------
You can try the best you can
If you try the best you can
The best you can is good enough
January 28, 2011
On Fri, 2011-01-28 at 12:43 -0300, Leandro Lucarella wrote:
> Russel Winder, el 28 de enero a las 11:30 me escribiste:
[ . . . ]
> > Bazaar does indeed have revision numbers per branch.  Note that branch and repository is a different concept in Bazaar, unlike Git and Mercurial where they are fundamentally the same.
> 
> WRONG about Git.

Depends what you thought I was saying . . .

> AFAIK only in Darcs branch and repository is the same.

. . . I think you misunderstood what I meant by my statement.

What I was trying to say was that Git and Mercurial have effectively the same ideas of repository and branch (at least from a surface usage perspective -- there are significant differences if you delve deeply). Bazaar has a very different idea of what branch and repository are.  So in this respect Git and Mercurial are in the same equivalence class and Bazaar is in a different one.  I have no idea where Darcs would sit, I have never used it beyond trying to compile Haskell this time last year.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


January 29, 2011
Russel Winder wrote:
> On Fri, 2011-01-28 at 12:43 -0300, Leandro Lucarella wrote:
>> Russel Winder, el 28 de enero a las 11:30 me escribiste:
> [ . . . ]
>>> Bazaar does indeed have revision numbers per branch.  Note that branch and repository is a different concept in Bazaar, unlike Git and Mercurial where they are fundamentally the same.
>> WRONG about Git.
> 
> Depends what you thought I was saying . . .
> 
>> AFAIK only in Darcs branch and repository is the same.
> 
> . . . I think you misunderstood what I meant by my statement.
> 
> What I was trying to say was that Git and Mercurial have effectively the same ideas of repository and branch (at least from a surface usage perspective -- there are significant differences if you delve deeply). Bazaar has a very different idea of what branch and repository are.  So in this respect Git and Mercurial are in the same equivalence class and Bazaar is in a different one.  I have no idea where Darcs would sit, I have never used it beyond trying to compile Haskell this time last year.
> 
	In Mercurial (and AFAIK Git), branches and repositories are
completely different concepts. A repository is a folder on your hard
drive. A branch is a history line inside a repository so it's not
that different from Bazaar. The only difference I see is that Bazaar
allows you to clone a single branch (i.e to create a repository that
will only contain that single branch) whereas a clone of a Mercurial
repository will always contain all the branches that the parent had
(don't know about Git).

		Jerome
-- 
mailto:jeberger@free.fr
http://jeberger.free.fr
Jabber: jeberger@jabber.fr



January 29, 2011
On Sat, 2011-01-29 at 11:18 +0100, "Jérôme M. Berger" wrote: [ . . . ]
> 	In Mercurial (and AFAIK Git), branches and repositories are
> completely different concepts. A repository is a folder on your hard
> drive. A branch is a history line inside a repository so it's not

Definitely, this is not at issue.  The way Git and Mercurial store information about branches and tags within a repository is very different.  This leads to a few observable differences in the way branches and commits behave, but in the main there is similarity not difference.  Caveat Git's index of course.

> that different from Bazaar. The only difference I see is that Bazaar allows you to clone a single branch (i.e to create a repository that will only contain that single branch) whereas a clone of a Mercurial repository will always contain all the branches that the parent had (don't know about Git).

This is not quite the right view of Bazaar.  In Bazaar, the branch is the only thing that exists: each branch is a standalone entity that may or may not have a working tree.  Bazaar also has shared repositories which can act as containers of branches, allowing related branches to share common information thereby saving resources.  This is a very, very different concept of repository compared to Mercurial or Git.  In Bazaar you do not branch repositories, you branch branches -- which may (or may not) be stored in repositories.  As you say with Git and Mercurial you clone repositories.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


January 29, 2011
Russel Winder Wrote:

> On Sat, 2011-01-29 at 11:18 +0100, "Jérôme M. Berger" wrote: [ . . . ]
> > 	In Mercurial (and AFAIK Git), branches and repositories are
> > completely different concepts. A repository is a folder on your hard
> > drive. A branch is a history line inside a repository so it's not
> 
> Definitely, this is not at issue.  The way Git and Mercurial store information about branches and tags within a repository is very different.  This leads to a few observable differences in the way branches and commits behave, but in the main there is similarity not difference.  Caveat Git's index of course.
> 
> > that different from Bazaar. The only difference I see is that Bazaar allows you to clone a single branch (i.e to create a repository that will only contain that single branch) whereas a clone of a Mercurial repository will always contain all the branches that the parent had (don't know about Git).
> 
> This is not quite the right view of Bazaar.  In Bazaar, the branch is the only thing that exists: each branch is a standalone entity that may or may not have a working tree.  Bazaar also has shared repositories which can act as containers of branches, allowing related branches to share common information thereby saving resources.  This is a very, very different concept of repository compared to Mercurial or Git.  In Bazaar you do not branch repositories, you branch branches -- which may (or may not) be stored in repositories.  As you say with Git and Mercurial you clone repositories.
> 
> -- 
> Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
> 

The conceptual difference described above seems to me more of an insignificant minor implementation detail than anything else.

A git repository can contain one or more branches and you obviously can have more than one repository so this boils down to your personal workflow preferences. In other words you can have multiple repositories for the same project and just use them as branches. Git also provides sub-module support such that one repository contains other repositories. Also, while "git clone" indeed copies all the upstream branches, it's also simple to track just a specific branch (or any subset) of the upstream branches. It's just a matter of doing a git init with the relevant options instead of relying on the default git clone behavior.
January 29, 2011
On Sat, 2011-01-29 at 09:49 -0500, foobar wrote:
[ . . . ]
> The conceptual difference described above seems to me more of an insignificant minor implementation detail than anything else.

Not at all.  But I am really not going to argue the point any further. D has chosen Git, which is fine.

> A git repository can contain one or more branches and you obviously can have more than one repository so this boils down to your personal workflow preferences. In other words you can have multiple repositories for the same project and just use them as branches. Git also provides sub-module support such that one repository contains other repositories. Also, while "git clone" indeed copies all the upstream branches, it's also simple to track just a specific branch (or any subset) of the upstream branches. It's just a matter of doing a git init with the relevant options instead of relying on the default git clone behavior.

Yes, but this (except tracking branches) applies to Mercurial as well. And mostly to Bazaar.  However note the above.

Tracking branches are probably the single most useful thing in Git compared to Mercurial and Bazaar.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@russel.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


Next ›   Last »
1 2 3 4 5 6 7 8 9
Top | Discussion index | About this forum | D home