Browse Source

Merge branch 'maint'

* maint:
  GIT 1.6.0.3
  rehabilitate 'git index-pack' inside the object store
maint
Junio C Hamano 17 years ago
parent
commit
20341dd970
  1. 15
      Documentation/RelNotes-1.6.0.3.txt
  2. 22
      index-pack.c
  3. 10
      t/t5302-pack-index.sh

15
Documentation/RelNotes-1.6.0.3.txt

@ -27,9 +27,6 @@ Fixes since v1.6.0.2 @@ -27,9 +27,6 @@ Fixes since v1.6.0.2
* "git diff" hunk header patterns with multiple elements separated by LF
were not used correctly.

* "git gc" when ejecting otherwise unreachable objects from packfiles into
loose form leaked memory.

* Hunk headers in "git diff" default to using extended regular
expressions, fixing some of the internal patterns on non-GNU
platforms.
@ -37,9 +34,15 @@ Fixes since v1.6.0.2 @@ -37,9 +34,15 @@ Fixes since v1.6.0.2
* New config "diff.*.xfuncname" exposes extended regular expressions
for user specified hunk header patterns.

* "git gc" when ejecting otherwise unreachable objects from packfiles into
loose form leaked memory.

* "git index-pack" was recently broken and mishandled objects added by
thin-pack completion processing under memory pressure.

* "git index-pack" was recently broken and misbehaved when run from inside
.git/objects/pack/ directory.

* "git stash apply sash@{1}" was fixed to error out. Prior versions
would have applied stash@{0} incorrectly.

@ -112,9 +115,3 @@ Fixes since v1.6.0.2 @@ -112,9 +115,3 @@ Fixes since v1.6.0.2
("git fetch") is still however supported.

Many other documentation updates.

--
exec >/var/tmp/1
O=v1.6.0.2-110-gf07c3c5
echo O=$(git describe maint)
git shortlog --no-merges $O..maint

22
index-pack.c

@ -880,10 +880,26 @@ int main(int argc, char **argv) @@ -880,10 +880,26 @@ int main(int argc, char **argv)
char *index_name_buf = NULL, *keep_name_buf = NULL;
struct pack_idx_entry **idx_objects;
unsigned char pack_sha1[20];
int nongit = 0;

setup_git_directory_gently(&nongit);
git_config(git_index_pack_config, NULL);
/*
* We wish to read the repository's config file if any, and
* for that it is necessary to call setup_git_directory_gently().
* However if the cwd was inside .git/objects/pack/ then we need
* to go back there or all the pack name arguments will be wrong.
* And in that case we cannot rely on any prefix returned by
* setup_git_directory_gently() either.
*/
{
char cwd[PATH_MAX+1];
int nongit;

if (!getcwd(cwd, sizeof(cwd)-1))
die("Unable to get current working directory");
setup_git_directory_gently(&nongit);
git_config(git_index_pack_config, NULL);
if (chdir(cwd))
die("Cannot come back to cwd");
}

for (i = 1; i < argc; i++) {
char *arg = argv[i];

10
t/t5302-pack-index.sh

@ -177,4 +177,14 @@ test_expect_success \ @@ -177,4 +177,14 @@ test_expect_success \
".git/objects/pack/pack-${pack1}.pack" 2>&1) &&
echo "$err" | grep "CRC mismatch"'

test_expect_success 'running index-pack in the object store' '
rm -f .git/objects/pack/* &&
cp test-1-${pack1}.pack .git/objects/pack/pack-${pack1}.pack &&
(
cd .git/objects/pack
git index-pack pack-${pack1}.pack
) &&
test -f .git/objects/pack/pack-${pack1}.idx
'

test_done

Loading…
Cancel
Save