git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Dmitry Potapov <dpotapov@gmail.com>, Shlomi Fish <shlomif@iglu.org.il>
Cc: git@vger.kernel.org,
	Eyvind Bernhardsen <eyvind-git@orakel.ntnu.no>,
	David Kastrup <dak@gnu.org>, Florian Weimer <fw@deneb.enyo.de>,
	Chris Shoemaker <c.shoemaker@cox.net>
Subject: Re: Adding Git to Better SCM Initiative : Comparison
Date: Mon, 14 Jan 2008 01:31:19 +0100	[thread overview]
Message-ID: <200801140131.23027.jnareb@gmail.com> (raw)
In-Reply-To: <20080114001408.GV2963@dpotapov.dyndns.org>

On Mon, 14 January 2008, Dmitry Potapov wrote:
> On Sun, Jan 13, 2008 at 01:44:10AM +0100, Jakub Narebski wrote:
> > 
> > What does "Renames Support" mean? 

By the way, the question was to the author of Better SCM Initiative
Comparison, Shlomi Fish.

> Accordingly to the clarification provided there, it means retaining the
> history of the file when its name changed. So I would write like this:
> 
> Yes. Git can automatically detects renames and show history together,
> however being content oriented rather than file oriented, the notion of
> "retaining the history of the file" can not exactly applied to it.

"History of a file" can be defined as "<scm> log 'file'", and this is
well defined also for git. And 'rename support' for file means just
that this history of a file (of a current file contents) follows file
renames.

IIRC this des not work for directories... but on the other hand git,
tracking contents only as a goal, does not track directories.

> > Because the answer,
> > especially in the case of git which is a bit different in that it does
> > rename detection and not rename tracking (using inodes / file-ids),
> > depends on that...
> 
> Git is different in that it tracks the content as the whole rather than
> tracking a set of files. When you look at some source code, what you
> really want to know who and why wrote *this*, and usually it does not
> matter to you whether it was written in this file or another one. CVS
> is really bad at that, because if you renamed a file, it would be very
> difficult to go back to history and find that. Many file-ids based SCMs
> have solved this problem, however, they do not do any better than CVS
> in another very common case -- when your code is moved around as result
> of refactoring, but Git addresses both problems, not just one!

AFAIK Mercurial (hg) is not file-id based, but does explicitely track
renames. There was even an idea presented on git mailing list to mark
renames in commit object in some "note" header.

> So, it is not as much about explicit renaming vs automatic, but about
> different design goals. After finishing reading this questionnaire,
> it seems to me that a more proper title for it would be "Better CVS
> Initiative", so it is not surprisingly that Git does not fit into it
> well. It is like trying to put characteristics of your LCD into a
> questionnaire for CRT monitors -- some does not make sense, other
> misleading, and most important ones are not mentioned anyway...

Please remember that AFAIK this table is _older_ than Git itself.
But it is a fact that some characteristics are much patterned after
CVS features and misfeatures.

It would be much better if for each feature there was some test
described which would allow to check if the feature is supported.

By the way, even before "git log --follow" you could have "this file
was renamed to that file" in the commit/revision patchset. This is
IMHO enough of rename support. Much more important is correct support
for renames in merges, which is in TODO for Better-SCM comparison...

-- 
Jakub Narebski
Poland

  reply	other threads:[~2008-01-14  0:31 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-10 12:57 Adding Git to Better SCM Initiative : Comparison Jakub Narebski
2007-12-10 13:09 ` Eyvind Bernhardsen
2007-12-10 13:20   ` Jakub Narebski
2007-12-10 14:33 ` David Kastrup
2007-12-10 14:49 ` Florian Weimer
2007-12-10 15:23   ` Johannes Schindelin
2007-12-10 15:36     ` Florian Weimer
2007-12-10 15:47   ` Jakub Narebski
2007-12-10 16:28     ` Florian Weimer
2007-12-10 16:38   ` Linus Torvalds
2007-12-10 16:50   ` Chris Shoemaker
2007-12-10 17:21     ` Jakub Narebski
     [not found] ` <200801071057.27710.shlomif@iglu.org.il>
2008-01-13  0:44   ` Jakub Narebski
2008-01-14  0:14     ` Dmitry Potapov
2008-01-14  0:31       ` Jakub Narebski [this message]
2008-01-14  6:58         ` Dmitry Potapov
2008-01-14 12:14           ` Jakub Narebski
  -- strict thread matches above, loose matches on Subject: below --
2008-01-13 15:05 linux
2008-01-13 15:16 ` Matthieu Moy
2008-01-13 16:25   ` Jakub Narebski
2008-01-13 18:42   ` linux
2008-01-13 19:20     ` linux
2007-11-28 22:39 Jakub Narebski
2007-11-29  1:48 ` Robin Rosenberg
2007-11-29  7:17   ` Jan Hudec
2007-11-29  2:26 ` Jakub Narebski
2007-11-29 20:07   ` Alex Riesen
2007-11-30  0:18     ` Jakub Narebski
2007-11-30  1:26       ` Johan Herland
2007-11-30  1:53         ` Jakub Narebski
2007-11-30  7:16       ` Alex Riesen
2007-11-30 18:34     ` Jan Hudec
2007-12-03 19:57 ` 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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200801140131.23027.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=c.shoemaker@cox.net \
    --cc=dak@gnu.org \
    --cc=dpotapov@gmail.com \
    --cc=eyvind-git@orakel.ntnu.no \
    --cc=fw@deneb.enyo.de \
    --cc=git@vger.kernel.org \
    --cc=shlomif@iglu.org.il \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).