git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* List of bugs and suggestions
@ 2007-09-17 22:54 Yann Dirson
  2007-09-17 23:26 ` Johannes Schindelin
  0 siblings, 1 reply; 2+ messages in thread
From: Yann Dirson @ 2007-09-17 22:54 UTC (permalink / raw)
  To: GIT list

Here are a list of issues I wrote down while using git and friends at
work, but did not take time to report of fix myself before.  They are
relative to git 1.5.3.

BUGS

	gitk:

- when selecting again a "local changes" pseudo-patch, gitk re-reads
the diff, and the results can be confusing if HEAD changed since last
full reload (eg. git-commit or stg/guilt push/pop).  Should detect the
HEAD change and propose a reload.

- clicking in diff-contents or file-list panes does not move focus out
of text fields (must click eg. between fields instead).  I remember
routinely click in diff-contents to focus out of the search field.

- if a file that is modified and copied in the same commit, clicking
on the original in file-list pane jumps to the "copy" entry.  This can
easily cause overlooking of changes to the original file.


	stash:

- "git stash show junk" acts like "git stash show"

- changes stashed in the index are unstashed only in workdir.  If
that's intended, a note in the "stash apply" doc would be useful; but
then I am left puzzled as to the usefulness of storing the index state
in the stash branch: it could surely be applied by a variant of "stash
apply", but such a command does not seem to exist yet ?


	misc git:

- git has problems with cascaded alternates that use relative paths.
	"git clone -s A B && git clone -s B C" puts absolute paths in
	info/alternates - there is probably a good reason, but it will
	obviously hurt when moving the clone.  Further more,
	Documentation/repository-layout.txt says scary things about
	using absolute paths there.  But if one manually sets up
	alternates in a set of repositories (easily reproduced by
	hand-editing the alternates files in the B clone
	described above), one ends with commits from A not being seen,
	and the following error message on each command run with C,
	even when no object lookup from A is required:

| $ git fsck
| error: .git/objects/../../../B/.git/objects: ignoring relative alternate object store ../../../A/.git/objects


- repack -a -l (after transitionning a repo to alternates) does not
detect that old packs including objects now in alternate.
	I had 2 branches in a single repo and changed the setup to 2
	repos (initialize by "cp -al" and removing unwanted refs from
	each repo), A finally referencing B as remote and alternate.
	"git repack -a -l" in A seems to correctly only include only
	local objects in the pack, but all the old packs containing
	objects now in B are kept.


SUGGESTIONS

git-diff*:

- could allow to declare word separators for --color-words

- could print hunk number in header (a la filterdiff --annotate)


gitk:

- on-demand loading of additional revs (eg. ancestors from reflogs)

- non-printable keystrokes could be made available from within text
fields (F5, PgUp, etc)

- large commits would be made easier to navigate with some additionnal
highlighting/coloring.  Eg:
 - coloring of add/remove (and copy/move ?) in patch file list
 - move selection in patch file list according to currently selected
   search match when there is one, or according to the file(s) whose
   diff currently appears
 - highlight search matches in patch file list
 - highlight search matches, and the file selected from the patch file
   list, in/beside the patch display slider

- file list could have its own focus history

- for large commits, it takes time to get the full diff.  Showing the
progress (nfiles processed / nfiles in commit) would be nice

- a "goto prev file" binding to reverse 'f' key (or quickly find in
which file a search match occured) would be great

- a "scroll diff view to next hunk" key binding ('h' ?)

- search backwards, and case-insensitively

- a list of known heads to jump to would be useful to quickly navigate
in multiple-head display mode.

- selecting a file in file list xould put filename in paste buffer,
like what's done for commit ids in history pane.

- "lock selected diff" toggle, to avoid losing a particular diff by
error (esp. useful when getting an expensive diff relatively to
selected commit)


stgit:

- derive a stack-log from patch logs
	The ordering information provided by patchlogs and starck
	reflog could be used to present a history of what happenned in
	a stack (eg. when coming back from holiday wondering what one
	was doing before leaving).


stgit contrib scripts (mostly reminders to myself ;):

- stg-whatchanged does not identify conflicts caused by "stg pick --fold"

- stg-fold-files-from cannot fold binary files (filterdiff limitation)
      =>  the following only works for filenames with no special char
	  (would need --zero):
            git show --binary $(stg id occ53) -- $(stg files --bare occ53|grep '^doc/') | stg fold
      => the following does not work either:
            git show --binary $(stg id occ53) -- $(git-ls-tree --name-only $(stg id occ53) doc/)

- stg-fold-files-from using non-git-aware filterdiff causes git-apply to
mistake a "add content to an empty file" hunk for a "create file" hunk

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: List of bugs and suggestions
  2007-09-17 22:54 List of bugs and suggestions Yann Dirson
@ 2007-09-17 23:26 ` Johannes Schindelin
  0 siblings, 0 replies; 2+ messages in thread
From: Johannes Schindelin @ 2007-09-17 23:26 UTC (permalink / raw)
  To: Yann Dirson; +Cc: GIT list

Hi,

On Tue, 18 Sep 2007, Yann Dirson wrote:

> 	stash:
> 
> - "git stash show junk" acts like "git stash show"
> 
> - changes stashed in the index are unstashed only in workdir.  If that's 
> intended, a note in the "stash apply" doc would be useful; but then I am 
> left puzzled as to the usefulness of storing the index state in the 
> stash branch: it could surely be applied by a variant of "stash apply", 
> but such a command does not seem to exist yet ?

It does, but it is not documented: "git stash apply --index".

> 	misc git:
> 
> - git has problems with cascaded alternates that use relative paths.

Known error, Pasky has lamented about that already.  I think we could get 
away with using make_absolute_path() cleverly.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-09-17 23:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-17 22:54 List of bugs and suggestions Yann Dirson
2007-09-17 23:26 ` Johannes Schindelin

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).