All of lore.kernel.org
 help / color / mirror / Atom feed
* Which VCS besides git?
@ 2010-03-02 14:55 Kārlis Repsons
  2010-03-02 15:28 ` Shawn O. Pearce
  2010-03-02 16:12 ` Jakub Narebski
  0 siblings, 2 replies; 13+ messages in thread
From: Kārlis Repsons @ 2010-03-02 14:55 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 272 bytes --]

People,
which VCS besides git provide chaining of commits with help of some 
cryptographic hash function, warning about or not allowing commits to be 
deleted on an equivalent of pull action, so that all added pieces of data can 
be retained securely on client side?

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 14:55 Which VCS besides git? Kārlis Repsons
@ 2010-03-02 15:28 ` Shawn O. Pearce
  2010-03-02 15:38   ` Kārlis Repsons
  2010-03-02 16:12 ` Jakub Narebski
  1 sibling, 1 reply; 13+ messages in thread
From: Shawn O. Pearce @ 2010-03-02 15:28 UTC (permalink / raw)
  To: K??rlis Repsons; +Cc: git

K??rlis Repsons <karlis.repsons@gmail.com> wrote:
> which VCS besides git provide chaining of commits with help of some 
> cryptographic hash function, warning about or not allowing commits to be 
> deleted on an equivalent of pull action, so that all added pieces of data can 
> be retained securely on client side?

Most of the distributed VCS systems do this.  I know Mercurial is
functionally identical to Git in this regard.  Maybe even Monotone
and Bazaar are as well, but I'm less familiar with those.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 15:28 ` Shawn O. Pearce
@ 2010-03-02 15:38   ` Kārlis Repsons
  2010-03-02 15:41     ` Shawn O. Pearce
  0 siblings, 1 reply; 13+ messages in thread
From: Kārlis Repsons @ 2010-03-02 15:38 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: git

[-- Attachment #1: Type: Text/Plain, Size: 609 bytes --]

On Tuesday 02 March 2010 15:28:21 Shawn O. Pearce wrote:
> K??rlis Repsons <karlis.repsons@gmail.com> wrote:
> > which VCS besides git provide chaining of commits with help of some
> > cryptographic hash function, warning about or not allowing commits to be
> > deleted on an equivalent of pull action, so that all added pieces of data
> > can be retained securely on client side?
> 
> Most of the distributed VCS systems do this.  I know Mercurial is
> functionally identical to Git in this regard.  Maybe even Monotone
> and Bazaar are as well, but I'm less familiar with those.
And svn doesn't?

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 15:38   ` Kārlis Repsons
@ 2010-03-02 15:41     ` Shawn O. Pearce
  0 siblings, 0 replies; 13+ messages in thread
From: Shawn O. Pearce @ 2010-03-02 15:41 UTC (permalink / raw)
  To: K??rlis Repsons; +Cc: git

K??rlis Repsons <karlis.repsons@gmail.com> wrote:
> On Tuesday 02 March 2010 15:28:21 Shawn O. Pearce wrote:
> > K??rlis Repsons <karlis.repsons@gmail.com> wrote:
> > > which VCS besides git provide chaining of commits with help of some
> > > cryptographic hash function, warning about or not allowing commits to be
> > > deleted on an equivalent of pull action, so that all added pieces of data
> > > can be retained securely on client side?
> > 
> > Most of the distributed VCS systems do this.  I know Mercurial is
> > functionally identical to Git in this regard.  Maybe even Monotone
> > and Bazaar are as well, but I'm less familiar with those.
> 
> And svn doesn't?

I don't know about SVN.  I only used it for a few months between
CVS and BitKeeper.  After that, I jumped pretty fast into Git and
didn't care about how Subversion works internally.

You might want to ask on the SVN mailing list rather than the Git
mailing list about SVN specific details...

-- 
Shawn.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 14:55 Which VCS besides git? Kārlis Repsons
  2010-03-02 15:28 ` Shawn O. Pearce
@ 2010-03-02 16:12 ` Jakub Narebski
  2010-03-02 16:22   ` Kārlis Repsons
  2010-03-03 12:49   ` Miklos Vajna
  1 sibling, 2 replies; 13+ messages in thread
From: Jakub Narebski @ 2010-03-02 16:12 UTC (permalink / raw)
  To: Kārlis Repsons; +Cc: git

Kārlis Repsons <karlis.repsons@gmail.com> writes:

> which VCS besides git provide chaining of commits with help of some 
> cryptographic hash function, warning about or not allowing commits to be 
> deleted on an equivalent of pull action, so that all added pieces of data can 
> be retained securely on client side?

Could you rephrase your request in more clear way?

If you want to know which VCS beside Git use cryptographic hash
function over commit info and commit parentage as commit id, then both
Monotone (from which Git borrowed this idea) and Mercurial use it.

Bazaar, if I understand it correctly, and from what I remember, uses
some UUID which includes commit digest as a commit identifier, but I
don't know if Bazaar have immutable history.

In Subversion you can change svn:log (or something like that)
property, i.e. change commit message, after the fact; I don't think
there is any check for that.  CVS doesn't support changesets, so it is
out of question.

I don't know about Darcs, or BitKeeper, or ClearCase, or Perforce.
-- 
Jakub Narebski
Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 16:12 ` Jakub Narebski
@ 2010-03-02 16:22   ` Kārlis Repsons
  2010-03-02 16:38     ` Ben Walton
  2010-03-03  1:41     ` Jakub Narebski
  2010-03-03 12:49   ` Miklos Vajna
  1 sibling, 2 replies; 13+ messages in thread
From: Kārlis Repsons @ 2010-03-02 16:22 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

[-- Attachment #1: Type: Text/Plain, Size: 833 bytes --]

On Tuesday 02 March 2010 16:12:22 Jakub Narebski wrote:
> Kārlis Repsons <karlis.repsons@gmail.com> writes:
> > which VCS besides git provide chaining of commits with help of some
> > cryptographic hash function, warning about or not allowing commits to be
> > deleted on an equivalent of pull action, so that all added pieces of data
> > can be retained securely on client side?
> 
> Could you rephrase your request in more clear way?
> 
> Bazaar, if I understand it correctly, and from what I remember, uses
> some UUID which includes commit digest as a commit identifier, but I
> don't know if Bazaar have immutable history.
On top of what you wrote already, I'd like to know which VCS have immutable 
history, which can all be stored (say, gradually accumulated) on clientside? I 
hope, that explained the idea...

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 16:22   ` Kārlis Repsons
@ 2010-03-02 16:38     ` Ben Walton
  2010-03-03  1:41     ` Jakub Narebski
  1 sibling, 0 replies; 13+ messages in thread
From: Ben Walton @ 2010-03-02 16:38 UTC (permalink / raw)
  To: Kārlis Repsons; +Cc: Jakub Narebski, git

[-- Attachment #1: Type: text/plain, Size: 549 bytes --]

Excerpts from Kārlis Repsons's message of Tue Mar 02 11:22:16 -0500 2010:

> On top of what you wrote already, I'd like to know which VCS have
> immutable history, which can all be stored (say, gradually
> accumulated) on clientside? I hope, that explained the idea...

Monotone does have immutable history (unless you munge the db by hand)
and is distributed (full history in each repo, good merging, etc).

I enjoyed mtn for a few years before getting hooked on git.  I've
found git much more pleasurable (and powerful) to use though.

HTH.
-Ben

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 16:22   ` Kārlis Repsons
  2010-03-02 16:38     ` Ben Walton
@ 2010-03-03  1:41     ` Jakub Narebski
  2010-03-03 11:58       ` Felipe Contreras
  1 sibling, 1 reply; 13+ messages in thread
From: Jakub Narebski @ 2010-03-03  1:41 UTC (permalink / raw)
  To: Kārlis Repsons; +Cc: git

Kārlis Repsons wrote:
> On Tuesday 02 March 2010 16:12:22 Jakub Narebski wrote:
> > Kārlis Repsons <karlis.repsons@gmail.com> writes:

> > > which VCS besides git provide chaining of commits with help of some
> > > cryptographic hash function, warning about or not allowing commits to be
> > > deleted on an equivalent of pull action, so that all added pieces of data
> > > can be retained securely on client side?
> > 
> > Could you rephrase your request in more clear way?
>
> On top of what you wrote already, I'd like to know which VCS have immutable 
> history, which can all be stored (say, gradually accumulated) on clientside? I 
> hope, that explained the idea...

As I wrote, all VCS which use cryptographic hash function (digest) for
commit identifier have immutable history.

All distributed VCS (DVCS) store whole[*] history with checkout.  There
isn't (beside _social_ reasons) any distinction between different repos:
there is no client - server model (so no "clientside"), but rather peer
2 peer model.  See http://en.wikipedia.org/wiki/List_of_revision_control_software#Distributed_model
(from OSS ones I'd say Git, Mercurial, Bazaar, Darcs, Monotone count).


[*] well, with possibly some exceptions, like shallow clone, or selecting
    branches to clone.

-- 
Jakub Narebski
Poland

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-03  1:41     ` Jakub Narebski
@ 2010-03-03 11:58       ` Felipe Contreras
  2010-03-03 12:12         ` Bruce Stephens
  2010-03-03 12:48         ` Ben Walton
  0 siblings, 2 replies; 13+ messages in thread
From: Felipe Contreras @ 2010-03-03 11:58 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: Kārlis Repsons, git

On Wed, Mar 3, 2010 at 3:41 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> Kārlis Repsons wrote:
>> On Tuesday 02 March 2010 16:12:22 Jakub Narebski wrote:
>> > Kārlis Repsons <karlis.repsons@gmail.com> writes:
>
>> > > which VCS besides git provide chaining of commits with help of some
>> > > cryptographic hash function, warning about or not allowing commits to be
>> > > deleted on an equivalent of pull action, so that all added pieces of data
>> > > can be retained securely on client side?
>> >
>> > Could you rephrase your request in more clear way?
>>
>> On top of what you wrote already, I'd like to know which VCS have immutable
>> history, which can all be stored (say, gradually accumulated) on clientside? I
>> hope, that explained the idea...
>
> As I wrote, all VCS which use cryptographic hash function (digest) for
> commit identifier have immutable history.

That's not exactly correct. Monotone works very differently; a
revision doesn't include the ancestry, that's handled in a separate
structure, so the revision hash doesn't tell you anything about the
ancestry. In fact, a revision doesn't contain anything, the data is
handled by "certs", and certs can be added later.

For example, it's possible to clone a repository and then add a second
commit message to a bunch of revisions. The revision hash doesn't
change. Instead, they ensure security by signing every piece of data
about a commit (commit date, author, commit message). So it's possible
to have multiple commit dates, authors, messages, etc. each signed by
a different person.

I'm not really fond of this approach :P

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-03 11:58       ` Felipe Contreras
@ 2010-03-03 12:12         ` Bruce Stephens
  2010-03-03 12:31           ` Felipe Contreras
  2010-03-03 12:48         ` Ben Walton
  1 sibling, 1 reply; 13+ messages in thread
From: Bruce Stephens @ 2010-03-03 12:12 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: Jakub Narebski, Kārlis Repsons, git

Felipe Contreras <felipe.contreras@gmail.com> writes:

[...]

> That's not exactly correct. Monotone works very differently; a
> revision doesn't include the ancestry, that's handled in a separate
> structure, so the revision hash doesn't tell you anything about the
> ancestry.

Not so.  Long ago that was the case (ancestry was via certs), but that's
not been the case for a long time.  There are (in retrospect) obvious
advantages in including the ancestry in the hash.

> In fact, a revision doesn't contain anything, the data is handled by
> "certs", and certs can be added later.

Revisions lack date, author, branch, commit message, but include
ancestry and the actual changes (which files/directories have changed
and how).

> For example, it's possible to clone a repository and then add a second
> commit message to a bunch of revisions. The revision hash doesn't
> change. Instead, they ensure security by signing every piece of data
> about a commit (commit date, author, commit message). So it's possible
> to have multiple commit dates, authors, messages, etc. each signed by
> a different person.
>
> I'm not really fond of this approach :P

It has the nice feature that many people can create merges, and if they
create exactly the same merge (from exactly the same parents) then only
one revision results (just with multiple certs decorating it).

(Monotone has changed since I last used it but I think the above is
still true.  There's been discussion about larger certs (rather than
having separate certs for branch, date, author, message, to have just
one covering the usual combination) AFAIK that hasn't happened yet.)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-03 12:12         ` Bruce Stephens
@ 2010-03-03 12:31           ` Felipe Contreras
  0 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2010-03-03 12:31 UTC (permalink / raw)
  To: Bruce Stephens; +Cc: Jakub Narebski, Kārlis Repsons, git

On Wed, Mar 3, 2010 at 2:12 PM, Bruce Stephens <bruce.stephens@isode.com> wrote:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
> [...]
>
>> That's not exactly correct. Monotone works very differently; a
>> revision doesn't include the ancestry, that's handled in a separate
>> structure, so the revision hash doesn't tell you anything about the
>> ancestry.
>
> Not so.  Long ago that was the case (ancestry was via certs), but that's
> not been the case for a long time.  There are (in retrospect) obvious
> advantages in including the ancestry in the hash.

Ah, I looked quickly ad one db and still saw 'revision_ancestry' being
used. I guess they decided to keep the information redundant.

>> In fact, a revision doesn't contain anything, the data is handled by
>> "certs", and certs can be added later.
>
> Revisions lack date, author, branch, commit message, but include
> ancestry and the actual changes (which files/directories have changed
> and how).
>
>> For example, it's possible to clone a repository and then add a second
>> commit message to a bunch of revisions. The revision hash doesn't
>> change. Instead, they ensure security by signing every piece of data
>> about a commit (commit date, author, commit message). So it's possible
>> to have multiple commit dates, authors, messages, etc. each signed by
>> a different person.
>>
>> I'm not really fond of this approach :P
>
> It has the nice feature that many people can create merges, and if they
> create exactly the same merge (from exactly the same parents) then only
> one revision results (just with multiple certs decorating it).

Yeah, I'm aware of the reasoning, but IMO it's too much complexity for
almost no gain. It's much easier to just 'git fetch' and synchronize
the changes.

Anyway, good to know they updated the ancestry handling :)

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-03 11:58       ` Felipe Contreras
  2010-03-03 12:12         ` Bruce Stephens
@ 2010-03-03 12:48         ` Ben Walton
  1 sibling, 0 replies; 13+ messages in thread
From: Ben Walton @ 2010-03-03 12:48 UTC (permalink / raw)
  To: git

[-- Attachment #1: Type: text/plain, Size: 726 bytes --]

Excerpts from Felipe Contreras's message of Wed Mar 03 06:58:41 -0500 2010:

> change. Instead, they ensure security by signing every piece of data
> about a commit (commit date, author, commit message). So it's possible
> to have multiple commit dates, authors, messages, etc. each signed by
> a different person.

As a side point...

This is also a lot of extra overhead for people to get up and going.
The git approach of guaranteeing integrity by signing tags only is
much better, both because it accomplishes the same thing and because
people can actually use it without having to share keys everywhere.

[I can't get (most) people to use keys for ssh, good luck trying to
get them to do it for version control...]

-Ben

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Which VCS besides git?
  2010-03-02 16:12 ` Jakub Narebski
  2010-03-02 16:22   ` Kārlis Repsons
@ 2010-03-03 12:49   ` Miklos Vajna
  1 sibling, 0 replies; 13+ messages in thread
From: Miklos Vajna @ 2010-03-03 12:49 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: K?rlis Repsons, git

[-- Attachment #1: Type: text/plain, Size: 503 bytes --]

On Tue, Mar 02, 2010 at 08:12:22AM -0800, Jakub Narebski <jnareb@gmail.com> wrote:
> I don't know about Darcs, or BitKeeper, or ClearCase, or Perforce.

Darcs does not have immutable history. It uses hashes instead of integer
versions (because of being distributed), but it computes the hash like
this:

http://progetti.arstecnica.it/tailor/browser/vcpx/repository/darcs/source.py#L495

So basically the commit hash does not use the hash of the commit
contents, only the commit date/author/message/etc.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2010-03-03 12:49 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-02 14:55 Which VCS besides git? Kārlis Repsons
2010-03-02 15:28 ` Shawn O. Pearce
2010-03-02 15:38   ` Kārlis Repsons
2010-03-02 15:41     ` Shawn O. Pearce
2010-03-02 16:12 ` Jakub Narebski
2010-03-02 16:22   ` Kārlis Repsons
2010-03-02 16:38     ` Ben Walton
2010-03-03  1:41     ` Jakub Narebski
2010-03-03 11:58       ` Felipe Contreras
2010-03-03 12:12         ` Bruce Stephens
2010-03-03 12:31           ` Felipe Contreras
2010-03-03 12:48         ` Ben Walton
2010-03-03 12:49   ` Miklos Vajna

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.