diff options
-rw-r--r-- | Documentation/RelNotes-1.5.6.3.txt | 26 | ||||
-rw-r--r-- | Documentation/git-mailinfo.txt | 5 | ||||
-rw-r--r-- | Documentation/git.txt | 3 | ||||
-rw-r--r-- | builtin-mailinfo.c | 2 | ||||
-rwxr-xr-x | git-am.sh | 3 | ||||
-rw-r--r-- | path.c | 2 | ||||
-rwxr-xr-x | t/t0004-unwritable.sh | 19 | ||||
-rwxr-xr-x | t/t1301-shared-repo.sh | 23 |
8 files changed, 61 insertions, 22 deletions
diff --git a/Documentation/RelNotes-1.5.6.3.txt b/Documentation/RelNotes-1.5.6.3.txt index dd0559b64a..942611299d 100644 --- a/Documentation/RelNotes-1.5.6.3.txt +++ b/Documentation/RelNotes-1.5.6.3.txt @@ -4,8 +4,16 @@ GIT v1.5.6.3 Release Notes Fixes since v1.5.6.2 -------------------- +* Setting core.sharerepository to traditional "true" value was supposed to make + the repository group writable but should not affect permission for others. + However, since 1.5.6, it was broken to drop permission for others when umask is + 022, making the repository unreadable by others. + * Setting GIT_TRACE will report spawning of external process via run_command(). +* Using an object with very deep delta chain pinned memory needed for extracting + intermediate base objects unnecessarily long, leading to excess memory usage. + * Bash completion script did not notice '--' marker on the command line and tried the relatively slow "ref completion" even when completing arguments after one. @@ -14,6 +22,12 @@ Fixes since v1.5.6.2 tree file for it confused "racy-git avoidance" logic into thinking that the path is now unchanged. +* The section that describes attributes related to git-archive were placed + in a wrong place in the gitattributes(5) manual page. + +* "git am" was not helpful to the users when it detected that the committer + information is not set up properly yet. + * "git clone" had a leftover debugging fprintf(). * "git clone -q" was not quiet enough as it used to and gave object count @@ -23,8 +37,10 @@ Fixes since v1.5.6.2 good thing if the remote side is well packed but otherwise not, especially for a project that is not really big. -* The section that describes attributes related to git-archive were placed - in a wrong place in the gitattributes(5) manual page. +* "git daemon" used to call syslog() from a signal handler, which + could raise signals of its own but generally is not reentrant. This + was fixed by restructuring the code to report syslog() after the handler + returns. * When "git push" tries to remove a remote ref, and corresponding tracking ref is missing, we used to report error (i.e. failure to @@ -34,9 +50,3 @@ Fixes since v1.5.6.2 MIME multipart mail correctly. Contains other various documentation fixes. - --- -exec >/var/tmp/1 -O=v1.5.6.2-23-ge965647 -echo O=$(git describe maint) -git shortlog --no-merges $O..maint diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt index cc52db3bef..316bcc6796 100644 --- a/Documentation/git-mailinfo.txt +++ b/Documentation/git-mailinfo.txt @@ -8,7 +8,7 @@ git-mailinfo - Extracts patch and authorship from a single e-mail message SYNOPSIS -------- -'git mailinfo' [-k] [-u | --encoding=<encoding>] <msg> <patch> +'git mailinfo' [-k] [-u | --encoding=<encoding> | -n] <msg> <patch> DESCRIPTION @@ -46,6 +46,9 @@ conversion, even with this flag. from what is specified by i18n.commitencoding, this flag can be used to override it. +-n:: + Disable all charset re-coding of the metadata. + <msg>:: The commit log message extracted from e-mail, usually except the title line which comes from e-mail Subject. diff --git a/Documentation/git.txt b/Documentation/git.txt index 4ecdc9f876..27b9d31f7e 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.5.6.2/git.html[documentation for release 1.5.6.2] +* link:v1.5.6.3/git.html[documentation for release 1.5.6.3] * release notes for + link:RelNotes-1.5.6.3.txt[1.5.6.3]. link:RelNotes-1.5.6.2.txt[1.5.6.2]. link:RelNotes-1.5.6.1.txt[1.5.6.1]. link:RelNotes-1.5.6.txt[1.5.6]. diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c index fa6e8f90a4..962aa34c8e 100644 --- a/builtin-mailinfo.c +++ b/builtin-mailinfo.c @@ -960,7 +960,7 @@ static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding, } static const char mailinfo_usage[] = - "git-mailinfo [-k] [-u | --encoding=<encoding>] msg patch <mail >info"; + "git-mailinfo [-k] [-u | --encoding=<encoding> | -n] msg patch <mail >info"; int cmd_mailinfo(int argc, const char **argv, const char *prefix) { @@ -30,7 +30,8 @@ set_reflog_action am require_work_tree cd_to_toplevel -git var GIT_COMMITTER_IDENT >/dev/null || exit +git var GIT_COMMITTER_IDENT >/dev/null || + die "You need to set your committer info first" stop_here () { echo "$1" >"$dotest/next" @@ -272,7 +272,7 @@ int adjust_shared_perm(const char *path) int tweak = shared_repository; if (!(mode & S_IWUSR)) tweak &= ~0222; - mode = (mode & ~0777) | tweak; + mode |= tweak; } else { /* Preserve old PERM_UMASK behaviour */ if (mode & S_IWUSR) diff --git a/t/t0004-unwritable.sh b/t/t0004-unwritable.sh index 9255c63c08..63e1217e71 100755 --- a/t/t0004-unwritable.sh +++ b/t/t0004-unwritable.sh @@ -8,6 +8,7 @@ test_expect_success setup ' >file && git add file && + test_tick && git commit -m initial && echo >file && git add file @@ -17,11 +18,11 @@ test_expect_success setup ' test_expect_success 'write-tree should notice unwritable repository' ' ( - chmod a-w .git/objects + chmod a-w .git/objects .git/objects/?? && test_must_fail git write-tree ) status=$? - chmod 775 .git/objects + chmod 775 .git/objects .git/objects/?? (exit $status) ' @@ -29,11 +30,11 @@ test_expect_success 'write-tree should notice unwritable repository' ' test_expect_success 'commit should notice unwritable repository' ' ( - chmod a-w .git/objects + chmod a-w .git/objects .git/objects/?? && test_must_fail git commit -m second ) status=$? - chmod 775 .git/objects + chmod 775 .git/objects .git/objects/?? (exit $status) ' @@ -41,12 +42,12 @@ test_expect_success 'commit should notice unwritable repository' ' test_expect_success 'update-index should notice unwritable repository' ' ( - echo a >file && - chmod a-w .git/objects + echo 6O >file && + chmod a-w .git/objects .git/objects/?? && test_must_fail git update-index file ) status=$? - chmod 775 .git/objects + chmod 775 .git/objects .git/objects/?? (exit $status) ' @@ -55,11 +56,11 @@ test_expect_success 'add should notice unwritable repository' ' ( echo b >file && - chmod a-w .git/objects + chmod a-w .git/objects .git/objects/?? && test_must_fail git add file ) status=$? - chmod 775 .git/objects + chmod 775 .git/objects .git/objects/?? (exit $status) ' diff --git a/t/t1301-shared-repo.sh b/t/t1301-shared-repo.sh index 6c78c8bc9b..dc85e8b60a 100755 --- a/t/t1301-shared-repo.sh +++ b/t/t1301-shared-repo.sh @@ -17,6 +17,29 @@ test_expect_success 'shared = 0400 (faulty permission u-w)' ' test $ret != "0" ' +for u in 002 022 +do + test_expect_success "shared=1 does not clear bits preset by umask $u" ' + mkdir sub && ( + cd sub && + umask $u && + git init --shared=1 && + test 1 = "$(git config core.sharedrepository)" + ) && + actual=$(ls -l sub/.git/HEAD) + case "$actual" in + -rw-rw-r--*) + : happy + ;; + *) + echo Oops, .git/HEAD is not 0664 but $actual + false + ;; + esac + ' + rm -rf sub +done + test_expect_success 'shared=all' ' mkdir sub && cd sub && |