From: Jakub Narebski <jnareb@gmail.com>
To: Dmitry Potapov <dpotapov@gmail.com>
Cc: git@vger.kernel.org, Alexey Mahotkin <squadette@gmail.com>
Subject: Re: Git at Better SCM Initiative comparison of VCS (long)
Date: Mon, 15 Sep 2008 02:37:47 +0200 [thread overview]
Message-ID: <200809150237.48460.jnareb@gmail.com> (raw)
In-Reply-To: <20080914194802.GH28210@dpotapov.dyndns.org>
On Sun, 14 Sep 2008, Dmitry Potapov wrote:
> On Sun, Sep 14, 2008 at 07:48:05PM +0200, Jakub Narebski wrote:
> > > Another thing here is that "git commit" is local, so I am not sure
> > > if this question includes network operations...
> >
> > Well, I think this session would be better titled "Atomic Operations"
> > or just "Atomicity". Although I'm not sure if for example in Git
> > all operations are atomic under all conditions...
>
> I believe that all git basic operations are atomic. In fact, you either
> got a new revision with new SHA-1 or don't. Aborting operation may
> leave some dangling objects, but it is okay, because they will be
> garbage collected later. But I am not sure about additional utilities
> such as git-svn. Git-svn uses rebase as it dcommits, being interrupted,
> it may leave you in some strange state. It is possible to recover but
> it may be not obvious for newbies. Other than that, I think everything
> is very resilient to any interruption.
I was thinking here about long-lasting and multiple-parts operations
like for example git-clone. Nevertheless we would never be in
inconsistent state.
> > > So, perhaps, it should be two separate points:
> > > - ability to preserve history of rename (with detail clarification
> > > of what it means)
> > > - ability to show renames in the project history
> >
> > That are points '1' and '2' on my list, perhaps stated bit differently:
> > showing renames in full history / history of project as whole, and
> > following history of a single file across renames.
>
> I did not mean '1' and '2' as priorities, but that it is slightly
> different features and both can be titled as support of renaming.
I didn't mean '1' and '2' as priorities; they are more or less equal,
although I would say that '1' might be prerequisite to '2'. '0' is
however a base which must be satisfied for tool to be named to have
"rename support".
> > >
> > > Git tracks content rather than file-ids, and therefore it uses heuristics
> > > for rename detection. This approach has an advantage of being able to
> > > preserve history for code lines between files, which usually happens much
> > > more often than file renaming.
> >
> > I would rather write
> >
> > Renames are supported for most practical purposes[1]. By design Git
> > does heuristic <i>rename detection</i> (based on similarity score of
> > pathnames and file contents), instead of doing rename tracking (which
> > usually is based on some kind of file-ids). This approach allows for
> > more generic content tracking of code movement (which usually happens
> > much often than wholesame file renaming), e.g. in "git blame -C -C".
>
> Sounds good to me. Perhaps, I would drop '(which usually... file-ids)'
> to make the sentence a bit shorter.
O.K.
(But I would wait a bit for final proposal, with sending patch for
scm-comparison.xml to Alexey and Shlomi.)
> > > > scm> <section id="tracking_uncommited_changes">
> > > > scm> <title>Tracking Uncommited Changes</title>
> > > > scm> <expl>
> > > > scm> Does the software have an ability to track the changes in the
> > > > scm> working copy that were not yet committed to the repository?
> > > > scm> </expl>
> > > >
> > > > This also should be made more clean. Does it mean for example ability
> > > > to tell which files have changed, or ability to diff working copy to
> > > > either last comitted changes, or to any revision available in repository?
> > >
> > > Also, ability to diff one or more specified files in the working copy to
> > > some specified revision.
> >
> > Right.
> >
> > I'm not sure now if "Tracking Uncommitted Changes" is a good name for
> > this feature / criterion, but I don't have definite idea for change...
>
> Actually, I don't like this name either. In particular, the word
> "tracking". Perhaps, "Showing Uncommitted Changes" would be a better
> name. Yet, ability to show diff between the working copy as some
> arbitrary version should be listed as a separate feature.
I don't have good name either. It is <something> about Uncommitted Changes.
Dealing with, or support for, or something...
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2008-09-15 0:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-13 17:06 Git at Better SCM Initiative comparison of VCS (long) Jakub Narebski
2008-09-14 14:43 ` Dmitry Potapov
2008-09-14 15:09 ` Alexey Mahotkin
2008-09-14 17:48 ` Jakub Narebski
2008-09-14 19:48 ` Dmitry Potapov
2008-09-14 21:06 ` Shawn O. Pearce
2008-09-14 21:29 ` Jakub Narebski
2008-09-15 0:37 ` Jakub Narebski [this message]
2008-10-01 18:45 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200809150237.48460.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=squadette@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).