Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: [PATCH] vcs_info git: Fix stagedstr for empty repos

Hello Daniel,

Daniel Shahaf wrote:
> vcs_info git false-negatives to detect staged changes in a repository that has
> no commits.  Attached a patch for that.


> The patch includes two variants for computing the "has staged changes?" bit in
> empty repositories: one via 'git ls-files' and one via git's empty tree.
> - The output of ls-files isn't O(1), but I tested with a 3000-file tree and
>   didn't notice a slowdown, so I suppose it's acceptable.
> - 'diff-index --cached --quiet $empty_tree' is an O(1) operation, but I am not
>   sure whether it is forwards compatible with future versions of Git, i.e.,
>   whether it's a hack that happens to work or a legitimate use of git's API.

I'm with Aaron on this one. IIRC, git uses the diff-index command in
various places, so I don't think it'll be removed anytime soon. Unless
you got other insight (personally, I'm not following the development of
any version control system very closely anymore), I suppose we don't
need two variants of the same thing in the code.

If you don't want the second variant to be forgotten, you can always put
it into the change's commit message. But in the code I'd just use the
variant that you think is faster (if only theoretically).

Regards, Frank

In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925

Messages sorted by: Reverse Date, Date, Thread, Author