Subject: bug#2676: 23.0.91; annoying/unnecessary vc-next-action conflict in vc-dir buffer

From: Dan Nicolaescu <[email-masked]>
Date: Sun, 15 Mar 2009 07:53:14 -0700 (PDT)

Miles Bader <[email-masked]> writes:

  > [Note: I have Dan's patch for fixing whole-directory vc-dir commit in
  > Git applied, though I don't think it should affect the following, as it
  > relates to final commit.]
  > 
  > If I have a vc-dir buffer showing a tree with a new file (not yet
  > registered with source-control), and a changed file (already
  > registered):
  > 
  >    VC backend : Git
  >    Working dir: /tmp/zonk/
  >    Branch     : master
  > 
  >                             ./
  >         unregistered        newf4
  >         edited              ppling
  > 
  > Then hitting "v" on the first line of the buffer gives the following
  > error:
  > 
  >    vc-dir-deduce-fileset: /tmp/zonk/ppling:edited clashes with /tmp/zonk/newf4:unregistered
  > 
  > While I guess I understand the reason for this, it's slightly annoying.
  > 
  > Given vc-next-action's "do-the-right-next-thing" functionality, it would
  > seem better in such a case to instead do a "register files only" step
  > (ignoring any changed-but-already-registered entries); subsequently, the
  > user could just hit "v" again to commit everything (the old changed file
  > and the files newly registered by the first "v").
  > 
  > I think this behavior would be a better match for vc-next-action's
  > behavior on single files.
  > 
  > Because registering/deregistering files is typically a local and
  > easily reversible operation, it would be "safe".
  > 
  > [Probably the "register files only" step should handle deletions too,
  > unregistering any deleted files.]

Not sure if such behavior is desirable.  It's not unusual to have log
files, debug output, and various other files that don't satisfy a
pattern in the current directory.  Registering such file and checking
them in by mistake does not seem such a good idea.

Note that it's quite easy to register all unregistered files: put the
cursor on one of them, press M, all of them will be selected, press v
and be done.

Also note that vc-dir is just enforcing the vc-next-action requirements
here, so you probably want to file your bug against that one.