зеркало из https://github.com/microsoft/git.git
Merge branch 'maint'
* maint: Add Release Notes to prepare for 1.5.0.2 Allow arbitrary number of arguments to git-pack-objects rerere: do not deal with symlinks. rerere: do not skip two conflicted paths next to each other. Don't modify CREDITS-FILE if it hasn't changed.
This commit is contained in:
Коммит
2c7ca1fcf1
|
@ -0,0 +1,59 @@
|
|||
GIT v1.5.0.2 Release Notes
|
||||
==========================
|
||||
|
||||
Fixes since v1.5.0.1
|
||||
--------------------
|
||||
|
||||
* Bugfixes
|
||||
|
||||
- 'git diff maint master next' did not correctly give combined
|
||||
diff across three trees.
|
||||
|
||||
- 'git fast-import' portability fix for Solaris.
|
||||
|
||||
- 'git show-ref --verify' without arguments did not error out
|
||||
but segfaulted.
|
||||
|
||||
- 'git diff :tracked-file `pwd`/an-untracked-file' gave an extra
|
||||
slashes after a/ and b/.
|
||||
|
||||
- 'git format-patch' produced too long filenames if the commit
|
||||
message had too long line at the beginning.
|
||||
|
||||
- Running 'make all' and then without changing anything
|
||||
running 'make install' still rebuilt some files. This
|
||||
was inconvenient when building as yourself and then
|
||||
installing as root (especially problematic when the source
|
||||
directory is on NFS and root is mapped to nobody).
|
||||
|
||||
- 'git-rerere' failed to deal with two unconflicted paths that
|
||||
sorted next to each other.
|
||||
|
||||
- 'git-rerere' attempted to open(2) a symlink and failed if
|
||||
there was a conflict. Since a conflicting change to a
|
||||
symlink would not benefit from rerere anyway, the command
|
||||
now ignores conflicting changes to symlinks.
|
||||
|
||||
- 'git-repack' did not like to pass more than 64 arguments
|
||||
internally to underlying 'rev-list' logic, which made it
|
||||
impossible to repack after accumulating many (small) packs
|
||||
in the repository.
|
||||
|
||||
* Documentation updates
|
||||
|
||||
- added and clarified core.bare, core.legacyheaders configurations.
|
||||
|
||||
- updated "git-clone --depth" documentation.
|
||||
|
||||
* Assorted git-gui fixes.
|
||||
|
||||
|
||||
--
|
||||
exec >/var/tmp/1
|
||||
O=v1.5.0.1-35-gffa84ff
|
||||
echo O=`git describe maint`
|
||||
git shortlog --no-merges $O..maint
|
||||
|
||||
#Local Variables:
|
||||
#mode: text
|
||||
#End:
|
|
@ -1551,9 +1551,12 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
|||
int use_internal_rev_list = 0;
|
||||
int thin = 0;
|
||||
int i;
|
||||
const char *rp_av[64];
|
||||
const char **rp_av;
|
||||
int rp_ac_alloc = 64;
|
||||
int rp_ac;
|
||||
|
||||
rp_av = xcalloc(rp_ac_alloc, sizeof(*rp_av));
|
||||
|
||||
rp_av[0] = "pack-objects";
|
||||
rp_av[1] = "--objects"; /* --thin will make it --objects-edge */
|
||||
rp_ac = 2;
|
||||
|
@ -1626,8 +1629,11 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
|||
!strcmp("--reflog", arg) ||
|
||||
!strcmp("--all", arg)) {
|
||||
use_internal_rev_list = 1;
|
||||
if (ARRAY_SIZE(rp_av) - 1 <= rp_ac)
|
||||
die("too many internal rev-list options");
|
||||
if (rp_ac >= rp_ac_alloc - 1) {
|
||||
rp_ac_alloc = alloc_nr(rp_ac_alloc);
|
||||
rp_av = xrealloc(rp_av,
|
||||
rp_ac_alloc * sizeof(*rp_av));
|
||||
}
|
||||
rp_av[rp_ac++] = arg;
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -154,13 +154,17 @@ static int find_conflict(struct path_list *conflict)
|
|||
return error("Could not read index");
|
||||
for (i = 0; i + 2 < active_nr; i++) {
|
||||
struct cache_entry *e1 = active_cache[i];
|
||||
struct cache_entry *e2 = active_cache[i + 1];
|
||||
struct cache_entry *e3 = active_cache[i + 2];
|
||||
if (ce_stage(e1) == 1 && ce_stage(e2) == 2 &&
|
||||
ce_stage(e3) == 3 && ce_same_name(e1, e2) &&
|
||||
ce_same_name(e1, e3)) {
|
||||
struct cache_entry *e2 = active_cache[i+1];
|
||||
struct cache_entry *e3 = active_cache[i+2];
|
||||
if (ce_stage(e1) == 1 &&
|
||||
ce_stage(e2) == 2 &&
|
||||
ce_stage(e3) == 3 &&
|
||||
ce_same_name(e1, e2) && ce_same_name(e1, e3) &&
|
||||
S_ISREG(ntohl(e1->ce_mode)) &&
|
||||
S_ISREG(ntohl(e2->ce_mode)) &&
|
||||
S_ISREG(ntohl(e3->ce_mode))) {
|
||||
path_list_insert((const char *)e1->name, conflict);
|
||||
i += 3;
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -20,8 +20,8 @@ tree_search ()
|
|||
generate_credits ()
|
||||
{
|
||||
tip=$1 &&
|
||||
rm -f $CF &&
|
||||
git shortlog -n -s $tip | sed 's/: .*$//' >$CF || exit
|
||||
rm -f "$2" &&
|
||||
git shortlog -n -s $tip | sed 's/: .*$//' >"$2" || exit
|
||||
}
|
||||
|
||||
# Always use the tarball credits file if found, just
|
||||
|
@ -36,10 +36,14 @@ generate_credits ()
|
|||
# that fact.
|
||||
#
|
||||
|
||||
credits_tmp=/var/tmp/gitgui-credits-$$
|
||||
trap 'rm -f "$credits_tmp"' 0
|
||||
|
||||
orig="$credits_tmp"
|
||||
|
||||
if test -f credits
|
||||
then
|
||||
rm -f $CF &&
|
||||
cp credits $CF || exit
|
||||
orig=credits
|
||||
elif prefix="$(git rev-parse --show-prefix 2>/dev/null)" &&
|
||||
test -n "$prefix" &&
|
||||
head=$(git rev-list --max-count=1 HEAD -- . 2>/dev/null) &&
|
||||
|
@ -47,12 +51,21 @@ elif prefix="$(git rev-parse --show-prefix 2>/dev/null)" &&
|
|||
tip=$(tree_search $head $tree) &&
|
||||
test -n "$tip"
|
||||
then
|
||||
generate_credits $tip || exit
|
||||
generate_credits $tip "$orig" || exit
|
||||
elif tip="$(git rev-parse --verify HEAD 2>/dev/null)" &&
|
||||
test -n "$tip"
|
||||
then
|
||||
generate_credits $tip || exit
|
||||
generate_credits $tip "$orig" || exit
|
||||
else
|
||||
echo "error: Cannot locate authorship information." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -f "$orig" && cmp -s "$orig" "$CF"
|
||||
then
|
||||
: noop
|
||||
else
|
||||
rm -f "$CF" &&
|
||||
cat "$orig" >"$CF"
|
||||
fi
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче