git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Cogito nit: cg-update should default to "origin".

From
David A. Wheeler <dwheeler@dwheeler.com>
Date
Apr 28, 2005, 03:57 UTC
Message-ID
<42705F3C.1000208@dwheeler.com>
In-Reply-To
<20050428005337.GA3422@pasky.ji.cz>
I said:
>>Minor nit on Cogito: I think cg-update should default to "origin",
>>not the head, if you leave it unspecified. ... The origin seems (to me)
>>to be a MUCH more common situation (and thus the better default).
Petr Baudis replied:
> Actually, I wasn't too happy with the current update-to-HEAD special
> case...
Sounds like we're in agreement! Once the special case goes
away, cg-update in both concept & code essentially becomes:
  cg-pull ${1:-origin} && cg-merge
which has the wonderful advantage of being really, really
easy to explain.  ("cg-update ALWAYS pulls, then merges").
 > I think people do this cg-update without arguments so seldom
 > that changing this now shouldn't hurt much, right?
Absolutely!  Indeed, I find myself doing:
  cg-update {wait for something to happen} {oops} cg-update origin
> What about moving this special case
> to something like
> 	cg-restore
> and changing the defaulting of update and pull back to 'origin'?
...
> Another thing is to UI-wise maintain clear difference between cg-cancel
> and cg-restore. Do you think the names are distinctive enough? Any
> better naming ideas?

Good names for these operations seem to be tough to find. "cg-cancel" seems odd anyway; you'd think you could "cancel" a commit and then the commit would stop existing (not true!).

I looked at a thesaurus; other options to cancel & restore include: revert, recover, retrieve, reclaim, reclaim, undo. You could even use the names cg-recover-deleted to recover deleted files (what cg-update does now without parameters), and use cg-cancel-edits or cg-cancel-changes to make clearer commands. But in the end I have a different idea, hold on...

elsewhere Dan Holmsand said:
 >How about making the restore thing a special case of cg-cancel instead?
 >"Restore deleted files", and "restore deleted and modified files and
 >unseek" are similar enough that people will now where to look.
 >Something like "cg-cancel -C" (for careful), that only restores deleted
 >files would do it, I think.

There's a big risk of not including the "-C" and suddenly losing everthing. Since there's NO way to recover these files, a somewhat safer interface would probably be a better idea. But merging the concepts may make sense if we can find a single command name that would help people figure this out.

How about "cg-revert" or "cg-restore"? The word "revert" is even in the comments for cg-cancel, but now it makes sense to "revert" or "restore" the existence of a file (whereas it's really odd to "cancel" a file deletion).

A serious problem with cg-cancel (and previous cg-undo) is big data loss, no recovery, of your recent work.... if it's going to have less & more drastic operations, I'd sure hate for the drastic operation to be the default. There's also missing functionality currently: often I want to revert to the unedited state for just a single file, or just restore a single file. So, how about this:

cg-revert [FILE...] or
cg-revert [-d|--deleted]|[-a|--all]
   Reverts some/all files back to the HEAD's state, eliminating changes
   If given a list of 1 or more files, this reverts just the named files
   to the HEAD state. If they were deleted, they are restored;
   if they were edited, their edits are PERMANENTLY LOST.
   If they haven't changed, nothing changes and there is no error.
   If given -d or --deleted, it reverts all deleted files.
   If given -a or --all, it reverts all files
   (everything), resuling in loss of all edits and removals.

How's that for a reasonable UI, replacing both cg-cancel and cg-update's current no-parameter functionality?

--- David A. Wheeler
Previous: Dan HolmsandNext: Dan Holmsand
Message 22 of 23 in “I'm missing isofs.h”
  1. Andrew MortonApr 27, 2005
  2. Jan HarkesApr 27, 2005
  3. Petr BaudisApr 27, 2005
  4. Jan HarkesApr 27, 2005
  5. Jan HarkesApr 27, 2005
  6. Steven ColeApr 27, 2005
  7. Steven ColeApr 27, 2005
  8. Petr BaudisApr 27, 2005
  9. Linus TorvaldsApr 28, 2005
  10. Petr BaudisApr 28, 2005
  11. Junio C HamanoApr 28, 2005
  12. Junio C HamanoApr 28, 2005
  13. Make diff-cache and friends output more cg-patch friendly.Junio C Hamano, Apr 28, 2005
  14. Petr BaudisApr 28, 2005
  15. David A. WheelerApr 28, 2005
  16. Linus TorvaldsApr 28, 2005
  17. Junio C HamanoApr 28, 2005
  18. Linus TorvaldsApr 28, 2005
  19. Cogito nit: cg-update should default to "origin".David A. Wheeler, Apr 28, 2005
  20. Petr BaudisApr 28, 2005
  21. Dan HolmsandApr 28, 2005
  22. David A. WheelerApr 28, 2005
  23. Dan HolmsandApr 28, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.