Proper tracking of file-level operations: rename, directories, merges

Eli Zaretskii eliz at gnu.org
Mon Oct 24 17:04:41 UTC 2011


> Cc: bazaar at lists.canonical.com, bazaar-bounces at lists.canonical.com,
>         ben+bazaar at benfinney.id.au
> From: John Yates <john.yates at us.ibm.com>
> Date: Mon, 24 Oct 2011 10:39:48 -0400
> 
> Eli Zaretskii wrote:
> 
> > No, you can say "bzr mv --after foo bar", to correct that mistake
> > after the fact.
> 
> It is not that I occasionally forget to use "bzr mv" in lieu of simple mv. 
>  No, I philosophically do not believe this is the proper user experience. 
> It reveals a fundamentally command-line-centric design in which users are 
> expected to keep in mind at all time that they are using a version control 
> system and therefore to modify their behavior appropriately.

I don't see why.  I see no reason why a UI front-end, or even a simple
file manager, couldn't invoke the VCS back-end when I rename or move a
file.  After all, we do expect such UIs to show us the version
information and even the fact that the file is versioned.

> From that perspective "bzr mv --after" is an even more egregious UI
> mistake.

That option exists to correct mistakes.  It's a fire escape.  It
should not be judged as something you use every day.

> "bzr mv" and "bzr mv --after" work only if one performs one's own renames 
> at the command-line.  Use an IDE or similar tool and bzr gets reduced to 
> inferring renames.

See above: I don't see why this should be so.  It's a question of how
well your tools are integrated, I guess.

> So whether one's version control tool can be encouraged to infer
> renames prior to commit and to actually record those renames or
> instead simply infers them after the fact (a la git) seems a
> difference without a distinction.
>
> Don't get me wrong.  I am a bzr fan and booster.  I simply have never 
> accepted that the explicit recording of renames is an important virtue. 

I'm not saying that tracking renames is a panacea of some kind.  But
one situation where I appreciate its existence is when I need to do
some forensics, like find out when was a certain change done, by whom,
and what did the code look like before the change.  Without reliable
tracking of renames, you will be sooner or later presented with a
completely bogus information.  At that point, even if you know the
file was renamed, you have a very non-trivial job on your hands.



More information about the bazaar mailing list