<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/cache.h, branch v1.9.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v1.9.2</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v1.9.2'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2014-03-18T21:04:01Z</updated>
<entry>
<title>Merge branch 'jk/commit-dates-parsing-fix' into maint</title>
<updated>2014-03-18T21:04:01Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-03-18T21:04:01Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=8aac6c97e81dee53ae7740663128b0296398d6d1'/>
<id>urn:sha1:8aac6c97e81dee53ae7740663128b0296398d6d1</id>
<content type='text'>
Codepaths that parse timestamps in commit objects have been
tightened.

* jk/commit-dates-parsing-fix:
  show_ident_date: fix tz range check
  log: do not segfault on gmtime errors
  log: handle integer overflow in timestamps
  date: check date overflow against time_t
  fsck: report integer overflow in author timestamps
  t4212: test bogus timestamps with git-log
</content>
</entry>
<entry>
<title>Merge branch 'bk/refresh-missing-ok-in-merge-recursive' into maint</title>
<updated>2014-03-18T21:02:38Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-03-18T21:02:37Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=6d011b8e3f36fc5b41d2451f488067ee367d7084'/>
<id>urn:sha1:6d011b8e3f36fc5b41d2451f488067ee367d7084</id>
<content type='text'>
"merge-recursive" was broken in 1.7.7 era and stopped working in an
empty (temporary) working tree, when there are renames involved.
This has been corrected.

* bk/refresh-missing-ok-in-merge-recursive:
  merge-recursive.c: tolerate missing files while refreshing index
  read-cache.c: extend make_cache_entry refresh flag with options
  read-cache.c: refactor --ignore-missing implementation
  t3030-merge-recursive: test known breakage with empty work tree
</content>
</entry>
<entry>
<title>pathspec: convert some match_pathspec_depth() to ce_path_match()</title>
<updated>2014-02-24T22:36:52Z</updated>
<author>
<name>Nguyễn Thái Ngọc Duy</name>
<email>pclouds@gmail.com</email>
</author>
<published>2014-01-24T13:40:28Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=429bb40abdb5b42ffdde5b1a58f9a37da723d179'/>
<id>urn:sha1:429bb40abdb5b42ffdde5b1a58f9a37da723d179</id>
<content type='text'>
This helps reduce the number of match_pathspec_depth() call sites and
show how match_pathspec_depth() is used.

Signed-off-by: Nguyễn Thái Ngọc Duy &lt;pclouds@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>read-cache.c: extend make_cache_entry refresh flag with options</title>
<updated>2014-02-24T22:31:17Z</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2014-01-27T14:45:08Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=257627268ad19cb616ad3feb6ca8171d400df287'/>
<id>urn:sha1:257627268ad19cb616ad3feb6ca8171d400df287</id>
<content type='text'>
Convert the make_cache_entry boolean 'refresh' argument to a more
general 'refresh_options' argument.  Pass the value through to the
underlying refresh_cache_ent call.  Add option CE_MATCH_REFRESH to
enable stat refresh.  Update call sites to use the new signature.

Signed-off-by: Brad King &lt;brad.king@kitware.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>read-cache.c: refactor --ignore-missing implementation</title>
<updated>2014-02-24T22:31:10Z</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2014-01-27T14:45:07Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2e2e7ec1ef567ac0a4ad8294ada15836661e6589'/>
<id>urn:sha1:2e2e7ec1ef567ac0a4ad8294ada15836661e6589</id>
<content type='text'>
Move lstat ENOENT handling from refresh_index to refresh_cache_ent and
activate it with a new CE_MATCH_IGNORE_MISSING option.  This will allow
other call paths into refresh_cache_ent to use the feature.

Signed-off-by: Brad King &lt;brad.king@kitware.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>date: check date overflow against time_t</title>
<updated>2014-02-24T18:12:58Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2014-02-24T07:39:45Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7ca36d9398a85e7974d04f8fbd2c6adb088290e1'/>
<id>urn:sha1:7ca36d9398a85e7974d04f8fbd2c6adb088290e1</id>
<content type='text'>
When we check whether a timestamp has overflowed, we check
only against ULONG_MAX, meaning that strtoul has overflowed.
However, we also feed these timestamps to system functions
like gmtime, which expect a time_t. On many systems, time_t
is actually smaller than "unsigned long" (e.g., because it
is signed), and we would overflow when using these
functions.  We don't know the actual size or signedness of
time_t, but we can easily check for truncation with a simple
assignment.

Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mh/safe-create-leading-directories'</title>
<updated>2014-01-27T18:45:33Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-01-27T18:45:33Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=d0956cfa8ef8b3668ea6adc94b27f5dcdc93bde0'/>
<id>urn:sha1:d0956cfa8ef8b3668ea6adc94b27f5dcdc93bde0</id>
<content type='text'>
Code clean-up and protection against concurrent write access to the
ref namespace.

* mh/safe-create-leading-directories:
  rename_tmp_log(): on SCLD_VANISHED, retry
  rename_tmp_log(): limit the number of remote_empty_directories() attempts
  rename_tmp_log(): handle a possible mkdir/rmdir race
  rename_ref(): extract function rename_tmp_log()
  remove_dir_recurse(): handle disappearing files and directories
  remove_dir_recurse(): tighten condition for removing unreadable dir
  lock_ref_sha1_basic(): if locking fails with ENOENT, retry
  lock_ref_sha1_basic(): on SCLD_VANISHED, retry
  safe_create_leading_directories(): add new error value SCLD_VANISHED
  cmd_init_db(): when creating directories, handle errors conservatively
  safe_create_leading_directories(): introduce enum for return values
  safe_create_leading_directories(): always restore slash at end of loop
  safe_create_leading_directories(): split on first of multiple slashes
  safe_create_leading_directories(): rename local variable
  safe_create_leading_directories(): add explicit "slash" pointer
  safe_create_leading_directories(): reduce scope of local variable
  safe_create_leading_directories(): fix format of "if" chaining
</content>
</entry>
<entry>
<title>Merge branch 'mh/retire-ref-fetch-rules'</title>
<updated>2014-01-27T18:44:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-01-27T18:44:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=9bb528709878d26ac75bf0cb075cc694acd0d69d'/>
<id>urn:sha1:9bb528709878d26ac75bf0cb075cc694acd0d69d</id>
<content type='text'>
Code simplification.

* mh/retire-ref-fetch-rules:
  refname_match(): always use the rules in ref_rev_parse_rules
</content>
</entry>
<entry>
<title>Merge branch 'nd/shallow-clone'</title>
<updated>2014-01-17T20:21:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-01-17T20:21:14Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=92251b1b5b5e53ac9de890105e2a2bd9d15e2ecb'/>
<id>urn:sha1:92251b1b5b5e53ac9de890105e2a2bd9d15e2ecb</id>
<content type='text'>
Fetching from a shallow-cloned repository used to be forbidden,
primarily because the codepaths involved were not carefully vetted
and we did not bother supporting such usage. This attempts to allow
object transfer out of a shallow-cloned repository in a controlled
way (i.e. the receiver become a shallow repository with truncated
history).

* nd/shallow-clone: (31 commits)
  t5537: fix incorrect expectation in test case 10
  shallow: remove unused code
  send-pack.c: mark a file-local function static
  git-clone.txt: remove shallow clone limitations
  prune: clean .git/shallow after pruning objects
  clone: use git protocol for cloning shallow repo locally
  send-pack: support pushing from a shallow clone via http
  receive-pack: support pushing to a shallow clone via http
  smart-http: support shallow fetch/clone
  remote-curl: pass ref SHA-1 to fetch-pack as well
  send-pack: support pushing to a shallow clone
  receive-pack: allow pushes that update .git/shallow
  connected.c: add new variant that runs with --shallow-file
  add GIT_SHALLOW_FILE to propagate --shallow-file to subprocesses
  receive/send-pack: support pushing from a shallow clone
  receive-pack: reorder some code in unpack()
  fetch: add --update-shallow to accept refs that update .git/shallow
  upload-pack: make sure deepening preserves shallow roots
  fetch: support fetching from a shallow repository
  clone: support remote shallow repository
  ...
</content>
</entry>
<entry>
<title>refname_match(): always use the rules in ref_rev_parse_rules</title>
<updated>2014-01-14T21:58:06Z</updated>
<author>
<name>Michael Haggerty</name>
<email>mhagger@alum.mit.edu</email>
</author>
<published>2014-01-14T03:16:07Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=54457fe509ee311abc2c4c2a796d16ea379aa8f2'/>
<id>urn:sha1:54457fe509ee311abc2c4c2a796d16ea379aa8f2</id>
<content type='text'>
We used to use two separate rules for the normal ref resolution
dwimming and dwimming done to decide which remote ref to grab.  The
third parameter to refname_match() selected which rules to use.

When these two rules were harmonized in

    2011-11-04 dd621df9cd refs DWIMmery: use the same rule for both "git fetch" and others

, ref_fetch_rules was #defined to avoid potential breakages for
in-flight topics.

It is now safe to remove the backwards-compatibility code, so remove
refname_match()'s third parameter, make ref_rev_parse_rules private to
refs.c, and remove ref_fetch_rules entirely.

Suggested-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Michael Haggerty &lt;mhagger@alum.mit.edu&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
