Merge branch 'maint'
* maint: GIT 1.6.0.3 rehabilitate 'git index-pack' inside the object store
This commit is contained in:
commit
20341dd970
@ -27,9 +27,6 @@ Fixes since v1.6.0.2
|
|||||||
* "git diff" hunk header patterns with multiple elements separated by LF
|
* "git diff" hunk header patterns with multiple elements separated by LF
|
||||||
were not used correctly.
|
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
|
* Hunk headers in "git diff" default to using extended regular
|
||||||
expressions, fixing some of the internal patterns on non-GNU
|
expressions, fixing some of the internal patterns on non-GNU
|
||||||
platforms.
|
platforms.
|
||||||
@ -37,9 +34,15 @@ Fixes since v1.6.0.2
|
|||||||
* New config "diff.*.xfuncname" exposes extended regular expressions
|
* New config "diff.*.xfuncname" exposes extended regular expressions
|
||||||
for user specified hunk header patterns.
|
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
|
* "git index-pack" was recently broken and mishandled objects added by
|
||||||
thin-pack completion processing under memory pressure.
|
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
|
* "git stash apply sash@{1}" was fixed to error out. Prior versions
|
||||||
would have applied stash@{0} incorrectly.
|
would have applied stash@{0} incorrectly.
|
||||||
|
|
||||||
@ -112,9 +115,3 @@ Fixes since v1.6.0.2
|
|||||||
("git fetch") is still however supported.
|
("git fetch") is still however supported.
|
||||||
|
|
||||||
Many other documentation updates.
|
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
22
index-pack.c
@ -880,10 +880,26 @@ int main(int argc, char **argv)
|
|||||||
char *index_name_buf = NULL, *keep_name_buf = NULL;
|
char *index_name_buf = NULL, *keep_name_buf = NULL;
|
||||||
struct pack_idx_entry **idx_objects;
|
struct pack_idx_entry **idx_objects;
|
||||||
unsigned char pack_sha1[20];
|
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++) {
|
for (i = 1; i < argc; i++) {
|
||||||
char *arg = argv[i];
|
char *arg = argv[i];
|
||||||
|
@ -177,4 +177,14 @@ test_expect_success \
|
|||||||
".git/objects/pack/pack-${pack1}.pack" 2>&1) &&
|
".git/objects/pack/pack-${pack1}.pack" 2>&1) &&
|
||||||
echo "$err" | grep "CRC mismatch"'
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user