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

plumbing pull request

From
Junio C Hamano <junkio@cox.net>
Date
May 4, 2005, 09:22 UTC
Message-ID
<7vll6vpcpv.fsf@assigned-by-dhcp.cox.net>

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.
----------------------------------------------------------------
Message 1 of 1 in “plumbing pull request”
  1. Junio C HamanoMay 4, 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.