Git development
 help / color / mirror / Atom feed
* Plumbing pull request
@ 2005-05-05  6:07 Junio C Hamano
  0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2005-05-05  6:07 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

Linus, please pull from

    http://members.cox.net/junkio/git-jc.git

which will update the following files:

diff-cache.c           |   23 ++++++-
diff.c                 |   58 ++++++++++++++------
git-apply-patch-script |  141 +++++++++++++++++++++++++++++++++++--------------
update-cache.c         |   42 +++++++++++++-
4 files changed, 202 insertions(+), 62 deletions(-)

via the following commits:

----------------------------------------------------------------
Prepare git-apply-patch-script for symbolic links.

This patch prepares the git-apply-patch-script for the upcoming change
to store the symbolic links in the cache, being worked on by Kay
Sievers.

It currently is very anal about symbolic link changes.  It refuses to
change between a regular file and a symbolic link, and only allows
symbolic link changes if the patch is based on the same original.
----------------------------------------------------------------
Prepare diff side for upcoming symlink work.

This patch prepares the external diff interface engine for the
change to store the symbolic links in the cache, being worked on
by Kay Sievers.

The main thing it does is when comparing with the work tree, it
prepares the counterpart to the blob being compared by doing a
readlink followed by sending that result to a temporary file to
be diffed.
----------------------------------------------------------------
diff-cache shows differences for unmerged paths without --cache.

While manually resolving a merge conflict, being able to run
diff-cache without --cache option between files in the work tree
and either of the ancestor trees is helpful to verify the hand
merge result.  However, diff-cache refuses to handle unmerged
paths, even when run without --cache option.

This changes the behaviour so that the above use case will
report the differences between the compared tree and the magic
0{40} SHA1 (i.e. "look at the work tree").  When there is no
corresponding file in the work tree, or when the command is run
with "--cache" option, it continues to report "unmerged".
----------------------------------------------------------------
Do not write out new index if nothing has changed.

The git-update-cache command, especially with --refresh, may not change
anything.  In such a case, writing 1.6MB of the same thing is a waste.
----------------------------------------------------------------
Make git-prune-script executable again.

I do not know why the executable bit was lost since the change went in as
GIT pull, not via e-mail patch, but here is a fix.
----------------------------------------------------------------


^ permalink raw reply	[flat|nested] 2+ messages in thread
* plumbing pull request
@ 2005-05-04  9:22 Junio C Hamano
  0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2005-05-04  9:22 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

Linus, please pull from http://members.cox.net/junkio/git-jc.git/
which contains the following changes.

----------------------------------------------------------------

  Optimize diff-cache -p --cached

  This patch optimizes "diff-cache -p --cached" by avoiding to
  inflate blobs into temporary files when the blob recorded in the
  cache matches the corresponding file in the work tree.  The file
  in the work tree is passed as the comparison source in such a
  case instead.

  This optimization kicks in only when we have already read the
  cache this optimization and this is deliberate.  Especially,
  diff-tree does not use this code, because changes are contained
  in small number of files relative to the project size most of
  the time, and reading cache is so expensive for a large project
  that the cost of reading it outweighs the savings by not
  inflating blobs.

  Also this patch cleans up the structure passed from diff clients
  by removing one unused structure member.

----------------------------------------------------------------

  Terminate diff-* on non-zero exit from GIT_EXTERNAL_DIFF

  (slightly updated from the version posted to the GIT mailing list
  with small bugfixes).

  This patch changes the git-apply-patch-script to exit non-zero when
  the patch cannot be applied.  Previously, the external diff driver
  deliberately ignored the exit status of GIT_EXTERNAL_DIFF command,
  which was a design mistake.  It now stops the processing when
  GIT_EXTERNAL_DIFF exits non-zero, so the damages from running
  git-diff-* with git-apply-patch-script between two wrong trees can be
  contained.

  The "diff" command line generated by the built-in driver is changed to
  always exit 0 in order to match this new behaviour.  I know Pasky does
  not use GIT_EXTERNAL_DIFF yet, so this change should not break Cogito,
  either.

----------------------------------------------------------------

  Git-prune-script loses blobs referenced from an uncommitted cache.

  (updated from the version posted to GIT mailing list).

  When a new blob is registered with update-cache, and before the cache
  is written as a tree and committed, git-fsck-cache will find the blob
  unreachable.  This patch adds a new flag, "--cache" to git-fsck-cache,
  with which it keeps such blobs from considered "unreachable".

  The git-prune-script is updated to use this new flag.  At the same time
  it adds .git/refs/*/* to the set of default locations to look for heads,
  which should be consistent with expectations from Cogito users.

  Without this fix, "diff-cache -p --cached" after git-prune-script has
  pruned the blob object will fail mysteriously and git-write-tree would
  also fail.

----------------------------------------------------------------

  Short-cut error return path in git-local-pull.

  When git-local-pull with -l option gets ENOENT attempting to create
  a hard link, there is no point falling back to other copy methods.
  With this patch, git-local-pull detects such a case and gives up
  copying the file early.

----------------------------------------------------------------

  Make git-*-pull say who wants them for missing objects.

  This patch updates pull.c, the engine that decides which objects are
  needed, given a commit to traverse from, to report which commit was
  calling for the object that cannot be retrieved from the remote side.
  This complements git-fsck-cache in that it checks the consistency of
  the remote repository for reachability.

----------------------------------------------------------------


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

end of thread, other threads:[~2005-05-05  6:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-05  6:07 Plumbing pull request Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2005-05-04  9:22 plumbing " Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox