* [ANNOUNCE] GIT 1.5.1.1 @ 2007-04-12 2:09 Junio C Hamano 2007-04-22 6:16 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-12 2:09 UTC (permalink / raw) To: git; +Cc: linux-kernel The latest maintenance release GIT 1.5.1.1 is available at the usual places: http://www.kernel.org/pub/software/scm/git/ git-1.5.1.1.tar.{gz,bz2} (tarball) git-htmldocs-1.5.1.1.tar.{gz,bz2} (preformatted docs) git-manpages-1.5.1.1.tar.{gz,bz2} (preformatted docs) RPMS/$arch/git-*-1.5.1.1-1.$arch.rpm (RPM) GIT v1.5.1.1 Release Notes ========================== Fixes since v1.5.1 ------------------ * Documentation updates - The --left-right option of rev-list and friends is documented. - The documentation for cvsimport has been majorly improved. - "git-show-ref --exclude-existing" was documented. * Bugfixes - The implementation of -p option in "git cvsexportcommit" had the meaning of -C (context reduction) option wrong, and loosened the context requirements when it was told to be strict. - "git cvsserver" did not behave like the real cvsserver when client side removed a file from the working tree without doing anything else on the path. In such a case, it should restore it from the checked out revision. - "git fsck" issued an alarming error message on detached HEAD. It is not an error since at least 1.5.0. - "git send-email" produced of References header of unbounded length; fixed this with line-folding. - "git archive" to download from remote site should not require you to be in a git repository, but it incorrectly did. - "git apply" ignored -p<n> for "diff --git" formatted patches. - "git rerere" recorded a conflict that had one side empty (the other side adds) incorrectly; this made merging in the other direction fail to use previously recorded resolution. - t4200 test was broken where "wc -l" pads its output with spaces. - "git branch -m old new" to rename branch did not work without a configuration file in ".git/config". - The sample hook for notification e-mail was misnamed. - gitweb did not show type-changing patch correctly in the blobdiff view. - git-svn did not error out with incorrect command line options. - git-svn fell into an infinite loop when insanely long commit message was found. - git-svn dcommit and rebase was confused by patches that were merged from another branch that is managed by git-svn. ---------------------------------------------------------------- Changes since v1.5.1 are as follows: Arjen Laarhoven (4): usermanual.txt: some capitalization nits t3200-branch.sh: small language nit t5300-pack-object.sh: portability issue using /usr/bin/stat Makefile: iconv() on Darwin has the old interface Brian Gernhardt (3): Fix t4200-rerere for white-space from "wc -l" Document --left-right option to rev-list. Distinguish branches by more than case in tests. Dana How (1): Fix lseek(2) calls with args 2 and 3 swapped Eric Wong (3): git-svn: bail out on incorrect command-line options git-svn: dcommit/rebase confused by patches with git-svn-id: lines git-svn: fix log command to avoid infinite loop on long commit messages Frank Lichtenheld (7): cvsimport: sync usage lines with existing options cvsimport: Improve documentation of CVSROOT and CVS module determination cvsimport: Improve usage error reporting cvsimport: Reorder options in documentation for better understanding cvsimport: Improve formating consistency cvsserver: small corrections to asciidoc documentation cvsserver: Fix handling of diappeared files on update Geert Bosch (1): Fix renaming branch without config file Gerrit Pape (1): rename contrib/hooks/post-receieve-email to contrib/hooks/post-receive-email. Jakub Narebski (1): gitweb: Fix bug in "blobdiff" view for split (e.g. file to symlink) patches Jim Meyering (1): (encode_85, decode_85): Mark source buffer pointer as "const". Julian Phillips (1): Documentation: show-ref: document --exclude-existing Junio C Hamano (7): rerere: make sorting really stable. Fix dependency of common-cmds.h Documentation: tighten dependency for git.{html,txt} Prepare for 1.5.1.1 Add Documentation/cmd-list.made to .gitignore fsck: do not complain on detached HEAD. GIT 1.5.1.1 Lars Hjemli (2): rename_ref(): only print a warning when config-file update fails Make builtin-branch.c handle the git config file René Scharfe (1): Revert "builtin-archive: use RUN_SETUP" Shawn O. Pearce (1): Honor -p<n> when applying git diffs Tomash Brechko (1): cvsexportcommit -p : fix the usage of git-apply -C. Ville Skyttä (1): DESTDIR support for git/contrib/emacs YOSHIFUJI Hideaki (1): Avoid composing too long "References" header. ^ permalink raw reply [flat|nested] 15+ messages in thread
* [ANNOUNCE] GIT 1.5.1.2 2007-04-12 2:09 [ANNOUNCE] GIT 1.5.1.1 Junio C Hamano @ 2007-04-22 6:16 ` Junio C Hamano 2007-04-22 17:22 ` Linus Torvalds 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 6:16 UTC (permalink / raw) To: git; +Cc: linux-kernel The latest maintenance release GIT 1.5.1.2 is available at the usual places: http://www.kernel.org/pub/software/scm/git/ git-1.5.1.2.tar.{gz,bz2} (tarball) git-htmldocs-1.5.1.2.tar.{gz,bz2} (preformatted docs) git-manpages-1.5.1.2.tar.{gz,bz2} (preformatted docs) RPMS/$arch/git-*-1.5.1.2-1.$arch.rpm (RPM) GIT v1.5.1.2 Release Notes ========================== Fixes since v1.5.1.1 -------------------- * Bugfixes - "git clone" over http from a repository that has lost the loose refs by running "git pack-refs" were broken (a code to deal with this was added to "git fetch" in v1.5.0, but it was missing from "git clone"). - "git diff a/ b/" incorrectly fell in "diff between two filesystem objects" codepath, when the user most likely wanted to limit the extent of output to two tracked directories. - git-quiltimport had the same bug as we fixed for git-applymbox in v1.5.1.1 -- it gave an alarming "did not have any patch" message (but did not actually fail and was harmless). - various git-svn fixes. - Sample update hook incorrectly always refused requests to delete branches through push. - git-blame on a very long working tree path had buffer overrun problem. - git-apply did not like to be fed two patches in a row that created and then modified the same file. - git-svn was confused when a non-project was stored directly under trunk/, branches/ and tags/. - git-svn wants the Error.pm module that was at least as new as what we ship as part of git; install ours in our private installation location if the one on the system is older. - An earlier update to command line integer parameter parser was botched and made 'update-index --cacheinfo' completely useless. * Documentation updates - Various documentation updates from J. Bruce Fields, Frank Lichtenheld, Alex Riesen and others. Andrew Ruder started a war on undocumented options. ---------------------------------------------------------------- Changes since v1.5.1.1 are as follows: Alex Riesen (3): Use rev-list --reverse in git-rebase.sh Document -g (--walk-reflogs) option of git-log Fix overwriting of files when applying contextually independent diffs Andrew Ruder (8): Update git-am documentation Update git-applymbox documentation Update git-apply documentation Update git-annotate/git-blame documentation Update git-archive documentation Update git-cherry-pick documentation Fix unmatched emphasis tag in git-tutorial Update git-config documentation Andy Whitcroft (1): fix up strtoul_ui error handling Carlos Rica (1): Use const qualifier for 'sha1' parameter in delete_ref function Eric Wong (4): git-svn: respect lower bound of -r/--revision when following parent git-svn: quiet some warnings when run only with --version/--help git-svn: don't allow globs to match regular files perl: install private Error.pm if the site version is older than our own Eygene Ryabinkin (2): Teach gitk to use the user-defined UI font everywhere. Improve look-and-feel of the gitk tool. Frank Lichtenheld (5): config.txt: Document gitcvs.allbinary config.txt: Document core.autocrlf config.txt: Change pserver to server in description of gitcvs.* config.txt: Fix grammatical error in description of http.noEPSV git-shortlog: Fix two formatting errors in asciidoc documentation Gerrit Pape (2): variable $projectdesc needs to be set before checking against unchanged default. Have sample update hook not refuse deleting a branch through push. J. Bruce Fields (7): Documentation: minor edits of git-lost-found manpage Documentation: clarify git-checkout -f, minor editing Documentation: clarify track/no-track option. user-manual: fix discussion of default clone user-manual: detached HEAD user-manual: start revising "internals" chapter user-manual: use detached head when rewriting history Jim Meyering (1): sscanf/strtoul: parse integers robustly Junio C Hamano (4): Do not default to --no-index when given two directories. Start preparing for 1.5.1.2 git-clone: fix dumb protocol transport to clone from pack-pruned ref GIT 1.5.1.2 Linus Torvalds (1): git-quiltimport complaining yet still working Matthias Lederhofer (1): handle_options in git wrapper miscounts the options it handled. Michael Spang (1): git-blame: Fix overrun in fake_working_tree_commit() Sam Vilain (1): git-tar-tree: complete deprecation conversion message Shawn O. Pearce (1): git-gui: Brown paper bag fix division by 0 in blame ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [ANNOUNCE] GIT 1.5.1.2 2007-04-22 6:16 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano @ 2007-04-22 17:22 ` Linus Torvalds 2007-04-22 17:58 ` Junio C Hamano 2007-04-22 18:47 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano 0 siblings, 2 replies; 15+ messages in thread From: Linus Torvalds @ 2007-04-22 17:22 UTC (permalink / raw) To: Junio C Hamano; +Cc: git, linux-kernel On Sat, 21 Apr 2007, Junio C Hamano wrote: > > The latest maintenance release GIT 1.5.1.2 is available at the > usual places: Well, by "available" you probably mean "not available", because it doesn't actually work. I get EPERM on pack-e00affefe0f779d0f9b0507aef25a1733f4a9117.idx/pack, because they are -r-------- 1 junio junio 1120880 -r-------- 1 junio junio 15709370 respectively. As a result, nothing really works, ie: [torvalds@hera git.git]$ git log error: Could not read 42c4b58059fa9af65e90f2c418bb551e30d1d32f and doing a "git pull" will just result in lots of error: refs/heads/maint does not point to a valid object! error: refs/heads/next does not point to a valid object! error: refs/heads/todo does not point to a valid object! ... which is perhaps a bit of a misleading error message (technically true, but ..) Oops. Linus ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [ANNOUNCE] GIT 1.5.1.2 2007-04-22 17:22 ` Linus Torvalds @ 2007-04-22 17:58 ` Junio C Hamano 2007-04-22 18:06 ` Today's 'master' leaves .idx/.pack in 0400 Junio C Hamano 2007-04-22 18:47 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano 1 sibling, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 17:58 UTC (permalink / raw) To: Linus Torvalds; +Cc: git, linux-kernel Linus Torvalds <torvalds@linux-foundation.org> writes: > On Sat, 21 Apr 2007, Junio C Hamano wrote: >> >> The latest maintenance release GIT 1.5.1.2 is available at the >> usual places: > > Well, by "available" you probably mean "not available", because it doesn't > actually work. > > I get EPERM on pack-e00affefe0f779d0f9b0507aef25a1733f4a9117.idx/pack, > because they are > > -r-------- 1 junio junio 1120880 > -r-------- 1 junio junio 15709370 > > respectively. I've run fsck and then flipped the bits manually on these files to unblock people, but I have no idea how this happened. These two were the only files that had the funny bits in the repository. -r-------- 1 junio junio 1120880 Apr 22 06:46 -r-------- 1 junio junio 15709370 Apr 22 06:46 I can tell from the output of "last" on that machine that I was present and I am reasonably sure this was from "git repack -a -d" I manually did. But my umask is 0002... Gaah. "git repack -a -d" from 'master' leaves packs with 0400 mode (maint is fine). > Oops. Oops indeed. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Today's 'master' leaves .idx/.pack in 0400 2007-04-22 17:58 ` Junio C Hamano @ 2007-04-22 18:06 ` Junio C Hamano 2007-04-22 18:25 ` Nicolas Pitre 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 18:06 UTC (permalink / raw) To: Linus Torvalds; +Cc: git, linux-kernel With recent glibc, mkstemp() creates 0400 file. Updated pack-objects uses it in pack/idx writing without fixing this, hence this problem. Will have a fix hopefully shortly. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:06 ` Today's 'master' leaves .idx/.pack in 0400 Junio C Hamano @ 2007-04-22 18:25 ` Nicolas Pitre 2007-04-22 18:27 ` Junio C Hamano 0 siblings, 1 reply; 15+ messages in thread From: Nicolas Pitre @ 2007-04-22 18:25 UTC (permalink / raw) To: Junio C Hamano; +Cc: Linus Torvalds, git, linux-kernel On Sun, 22 Apr 2007, Junio C Hamano wrote: > With recent glibc, mkstemp() creates 0400 file. Updated > pack-objects uses it in pack/idx writing without fixing this, > hence this problem. Oops. I guess I'm guilty for this. I didn't bother looking at the permission on the pack for git-pack-objects since git-repack seemed to take care of that. But it only _remove_ write permissions. Nicolas ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:25 ` Nicolas Pitre @ 2007-04-22 18:27 ` Junio C Hamano 2007-04-22 18:34 ` Nicolas Pitre 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 18:27 UTC (permalink / raw) To: Nicolas Pitre; +Cc: Linus Torvalds, git, linux-kernel Nicolas Pitre <nico@cam.org> writes: > On Sun, 22 Apr 2007, Junio C Hamano wrote: > >> With recent glibc, mkstemp() creates 0400 file. Updated >> pack-objects uses it in pack/idx writing without fixing this, >> hence this problem. > > Oops. I guess I'm guilty for this. I didn't bother looking at the > permission on the pack for git-pack-objects since git-repack seemed to > take care of that. But it only _remove_ write permissions. Ok, then probably we can change the 0444 in my "quickfix" patch to 0644. That should also let the 5300 test pass. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:27 ` Junio C Hamano @ 2007-04-22 18:34 ` Nicolas Pitre 2007-04-22 18:47 ` Nicolas Pitre 2007-04-22 18:54 ` Linus Torvalds 0 siblings, 2 replies; 15+ messages in thread From: Nicolas Pitre @ 2007-04-22 18:34 UTC (permalink / raw) To: Junio C Hamano; +Cc: Linus Torvalds, git, linux-kernel On Sun, 22 Apr 2007, Junio C Hamano wrote: > Nicolas Pitre <nico@cam.org> writes: > > > On Sun, 22 Apr 2007, Junio C Hamano wrote: > > > >> With recent glibc, mkstemp() creates 0400 file. Updated > >> pack-objects uses it in pack/idx writing without fixing this, > >> hence this problem. > > > > Oops. I guess I'm guilty for this. I didn't bother looking at the > > permission on the pack for git-pack-objects since git-repack seemed to > > take care of that. But it only _remove_ write permissions. > > Ok, then probably we can change the 0444 in my "quickfix" patch > to 0644. That should also let the 5300 test pass. Well, actually there is no point making pack files writable. If they're modified, they get corrupted. Here's the fix I wanted to propose: diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index c72e07a..85c6e6e 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1786,11 +1786,13 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) if (rename(pack_tmp_name, tmpname)) die("unable to rename temporary pack file: %s", strerror(errno)); + chmod(tmpname, 0444); snprintf(tmpname, sizeof(tmpname), "%s-%s.idx", base_name, sha1_to_hex(object_list_sha1)); if (rename(idx_tmp_name, tmpname)) die("unable to rename temporary index file: %s", strerror(errno)); + chmod(tmpname, 0444); puts(sha1_to_hex(object_list_sha1)); } if (progress) Nicolas ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:34 ` Nicolas Pitre @ 2007-04-22 18:47 ` Nicolas Pitre 2007-04-22 18:52 ` Junio C Hamano 2007-04-22 18:54 ` Linus Torvalds 1 sibling, 1 reply; 15+ messages in thread From: Nicolas Pitre @ 2007-04-22 18:47 UTC (permalink / raw) To: Junio C Hamano; +Cc: Linus Torvalds, git, linux-kernel On Sun, 22 Apr 2007, Nicolas Pitre wrote: > On Sun, 22 Apr 2007, Junio C Hamano wrote: > > > Nicolas Pitre <nico@cam.org> writes: > > > > > On Sun, 22 Apr 2007, Junio C Hamano wrote: > > > > > >> With recent glibc, mkstemp() creates 0400 file. Updated > > >> pack-objects uses it in pack/idx writing without fixing this, > > >> hence this problem. > > > > > > Oops. I guess I'm guilty for this. I didn't bother looking at the > > > permission on the pack for git-pack-objects since git-repack seemed to > > > take care of that. But it only _remove_ write permissions. > > > > Ok, then probably we can change the 0444 in my "quickfix" patch > > to 0644. That should also let the 5300 test pass. > > Well, actually there is no point making pack files writable. If they're > modified, they get corrupted. OK there are those test cases. Well... Either we chmod to 0644, or we fix the tests to 'chmod +w' like it is already done in t5302. In any case I wouldn't die() but only error() on a failure to chmod(). It is sure inconvenient if the pack isn't world readable, but it is not a "fatal" problem for the repack. Nicolas ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:47 ` Nicolas Pitre @ 2007-04-22 18:52 ` Junio C Hamano 0 siblings, 0 replies; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 18:52 UTC (permalink / raw) To: Nicolas Pitre; +Cc: Linus Torvalds, git, linux-kernel Nicolas Pitre <nico@cam.org> writes: > On Sun, 22 Apr 2007, Nicolas Pitre wrote: > >> On Sun, 22 Apr 2007, Junio C Hamano wrote: >> >> > Nicolas Pitre <nico@cam.org> writes: >> > >> > > On Sun, 22 Apr 2007, Junio C Hamano wrote: >> > > >> > >> With recent glibc, mkstemp() creates 0400 file. Updated >> > >> pack-objects uses it in pack/idx writing without fixing this, >> > >> hence this problem. >> > > >> > > Oops. I guess I'm guilty for this. I didn't bother looking at the >> > > permission on the pack for git-pack-objects since git-repack seemed to >> > > take care of that. But it only _remove_ write permissions. >> > >> > Ok, then probably we can change the 0444 in my "quickfix" patch >> > to 0644. That should also let the 5300 test pass. >> >> Well, actually there is no point making pack files writable. If they're >> modified, they get corrupted. > > OK there are those test cases. > > Well... Either we chmod to 0644, or we fix the tests to 'chmod +w' like > it is already done in t5302. > > In any case I wouldn't die() but only error() on a failure to chmod(). > It is sure inconvenient if the pack isn't world readable, but it is not > a "fatal" problem for the repack. If it DIED, I would not have to have been embarrassed in public like this! Grumble. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:34 ` Nicolas Pitre 2007-04-22 18:47 ` Nicolas Pitre @ 2007-04-22 18:54 ` Linus Torvalds 2007-04-22 19:03 ` Junio C Hamano 1 sibling, 1 reply; 15+ messages in thread From: Linus Torvalds @ 2007-04-22 18:54 UTC (permalink / raw) To: Nicolas Pitre; +Cc: Junio C Hamano, git, linux-kernel On Sun, 22 Apr 2007, Nicolas Pitre wrote: > > Well, actually there is no point making pack files writable. If they're > modified, they get corrupted. > > Here's the fix I wanted to propose: > > diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c > index c72e07a..85c6e6e 100644 > --- a/builtin-pack-objects.c > +++ b/builtin-pack-objects.c > @@ -1786,11 +1786,13 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) > if (rename(pack_tmp_name, tmpname)) > die("unable to rename temporary pack file: %s", > strerror(errno)); > + chmod(tmpname, 0444); I think this is wrong (as is Junio's). I think we should still honor the repository permission setting, and default to honoring umask. So I think that if the user has a umask that says "nobody else can read", then we should *not* make it world readable (unless the "shared_repository" thing is set to override it, of course). Linus ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 18:54 ` Linus Torvalds @ 2007-04-22 19:03 ` Junio C Hamano 2007-04-22 19:20 ` Junio C Hamano 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 19:03 UTC (permalink / raw) To: Linus Torvalds; +Cc: Nicolas Pitre, git, linux-kernel Linus Torvalds <torvalds@linux-foundation.org> writes: > On Sun, 22 Apr 2007, Nicolas Pitre wrote: >> >> Well, actually there is no point making pack files writable. If they're >> modified, they get corrupted. >> >> Here's the fix I wanted to propose: >> >> diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c >> index c72e07a..85c6e6e 100644 >> --- a/builtin-pack-objects.c >> +++ b/builtin-pack-objects.c >> @@ -1786,11 +1786,13 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) >> if (rename(pack_tmp_name, tmpname)) >> die("unable to rename temporary pack file: %s", >> strerror(errno)); >> + chmod(tmpname, 0444); > > I think this is wrong (as is Junio's). I think we should still honor the > repository permission setting, and default to honoring umask. > > So I think that if the user has a umask that says "nobody else can read", > then we should *not* make it world readable (unless the > "shared_repository" thing is set to override it, of course). I obviously agree, but as a tentative measure, I'll push out 0644 version anyway. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 19:03 ` Junio C Hamano @ 2007-04-22 19:20 ` Junio C Hamano 2007-04-22 19:29 ` Linus Torvalds 0 siblings, 1 reply; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 19:20 UTC (permalink / raw) To: Linus Torvalds; +Cc: Nicolas Pitre, git, linux-kernel Junio C Hamano <junkio@cox.net> writes: > Linus Torvalds <torvalds@linux-foundation.org> writes: > >> So I think that if the user has a umask that says "nobody else can read", >> then we should *not* make it world readable (unless the >> "shared_repository" thing is set to override it, of course). > > I obviously agree, but as a tentative measure, I'll push out > 0644 version anyway. How about this as a replacement (hot off the press -- still running the tests). -- >8 -- pack-objects: adjust the permission bits of created files. The updated pack-objects let mkstemp() to create new pack/idx pair, without fixing the permission bits on them. Signed-off-by: Junio C Hamano <junkio@cox.net> --- builtin-pack-objects.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index c72e07a..34350bf 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1612,6 +1612,13 @@ static void get_object_list(int ac, const char **av) traverse_commit_list(&revs, show_commit, show_object); } +static int adjust_perm(const char *path, mode_t mode) +{ + if (chmod(path, mode)) + return -1; + return adjust_shared_perm(path); +} + int cmd_pack_objects(int argc, const char **argv, const char *prefix) { int depth = 10; @@ -1780,14 +1787,25 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) last_obj_offset = write_pack_file(); if (!pack_to_stdout) { unsigned char object_list_sha1[20]; + mode_t mode = umask(0); + + umask(mode); + mode = 0666 & ~mode; + write_index_file(last_obj_offset, object_list_sha1); snprintf(tmpname, sizeof(tmpname), "%s-%s.pack", base_name, sha1_to_hex(object_list_sha1)); + if (adjust_perm(pack_tmp_name, mode)) + die("unable to make temporary pack file readable: %s", + strerror(errno)); if (rename(pack_tmp_name, tmpname)) die("unable to rename temporary pack file: %s", strerror(errno)); snprintf(tmpname, sizeof(tmpname), "%s-%s.idx", base_name, sha1_to_hex(object_list_sha1)); + if (adjust_perm(idx_tmp_name, mode)) + die("unable to make temporary index file readable: %s", + strerror(errno)); if (rename(idx_tmp_name, tmpname)) die("unable to rename temporary index file: %s", strerror(errno)); ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: Today's 'master' leaves .idx/.pack in 0400 2007-04-22 19:20 ` Junio C Hamano @ 2007-04-22 19:29 ` Linus Torvalds 0 siblings, 0 replies; 15+ messages in thread From: Linus Torvalds @ 2007-04-22 19:29 UTC (permalink / raw) To: Junio C Hamano; +Cc: Nicolas Pitre, git, linux-kernel On Sun, 22 Apr 2007, Junio C Hamano wrote: > > How about this as a replacement (hot off the press -- still > running the tests). Looks good, but.. > + mode_t mode = umask(0); > + > + umask(mode); > + mode = 0666 & ~mode; I would really suggest just defaulting to mode = 0444 & ~mode; since there simply is never any reason to allow a writable pack-file. The fact that we have some tests that try to corrupt a pack-file is not really a reason. Just make them do "chmod +w" before corrupting it. But your patch is an obvious improvement regardless, so I certainly don't think this is a *big* issue. Linus ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [ANNOUNCE] GIT 1.5.1.2 2007-04-22 17:22 ` Linus Torvalds 2007-04-22 17:58 ` Junio C Hamano @ 2007-04-22 18:47 ` Junio C Hamano 1 sibling, 0 replies; 15+ messages in thread From: Junio C Hamano @ 2007-04-22 18:47 UTC (permalink / raw) To: Linus Torvalds; +Cc: git, linux-kernel, Randal L. Schwartz, Nicolas Pitre Linus Torvalds <torvalds@linux-foundation.org> writes: > On Sat, 21 Apr 2007, Junio C Hamano wrote: >> >> The latest maintenance release GIT 1.5.1.2 is available at the >> usual places: > > Well, by "available" you probably mean "not available", because it doesn't > actually work. > > I get EPERM on pack-e00affefe0f779d0f9b0507aef25a1733f4a9117.idx/pack, > because they are > > -r-------- 1 junio junio 1120880 > -r-------- 1 junio junio 15709370 > > respectively. > ... > Oops. Ok, to clarify the situation. * This breakage does not make v1.5.1.2 is a dud release, as what caused this is not contained in it. * A topic to update git-pack-objects has been cooking in 'next' and it graduated to 'master' last night after v1.5.1.2 was cut from 'maint'. This series had a bug that left permission bits as set by mkstemp(); newer glibc leaves it as 0600. * I almost always run 'master' on kernel.org; I ran "git-repack -a -d" there using 'master' that contained the breakage. * git-repack lets git-pack-objects to create pack/idx, and then drops the write permission bits from them. That is how they got 0400. * I've fixed the pack/idx 0444 manually at kernel.org; the repository has already mirrored out to git.kernel.org, so people should be able to fetch from there now. alt-git.git at repo.or.cz should be usable as well, although I suspect the site did not even have this issue. * I sent a quickfix as a workaround. Because we rely on git-repack to drop write permissions anyway, and some tests to plumbing expects the resulting files to be writable by the owner, tweaking 0444 in the quickfix to 0644 would be a good workaround to fix the problem -and- pass all the test. So I'll push out a 0644 quickfix on 'master' shortly. However. * To reiterate, people planning to update to v1.5.1.2 should not be alarmed with this gotcha. That comes from the maintenance branch and is not affected by this breakage. * Letting mkstemp() to create the file and then forcing 0644 is not strictly correct, as it makes the files created by people with 007 umask readable to the general public. The code before mkstemp() conversion was aware of this issue and used open(..., 0666) to let the user's umask applied, I think. So while the quickfix is an improvement, it not a real fix X-<. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2007-04-22 19:30 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-04-12 2:09 [ANNOUNCE] GIT 1.5.1.1 Junio C Hamano 2007-04-22 6:16 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano 2007-04-22 17:22 ` Linus Torvalds 2007-04-22 17:58 ` Junio C Hamano 2007-04-22 18:06 ` Today's 'master' leaves .idx/.pack in 0400 Junio C Hamano 2007-04-22 18:25 ` Nicolas Pitre 2007-04-22 18:27 ` Junio C Hamano 2007-04-22 18:34 ` Nicolas Pitre 2007-04-22 18:47 ` Nicolas Pitre 2007-04-22 18:52 ` Junio C Hamano 2007-04-22 18:54 ` Linus Torvalds 2007-04-22 19:03 ` Junio C Hamano 2007-04-22 19:20 ` Junio C Hamano 2007-04-22 19:29 ` Linus Torvalds 2007-04-22 18:47 ` [ANNOUNCE] GIT 1.5.1.2 Junio C Hamano
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).