git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: gc changes permissions of files

From
AWAllan Wind <allan_wind@lifeintegrity.com>
Date
Jun 15, 2008, 22:31 UTC
Message-ID
<20080615223114.GA27088@lifeintegrity.com>
In-Reply-To
<20080615062736.GC14357@lifeintegrity.com>
On 2008-06-15T02:27:36-0400, Allan Wind wrote:
Show 62 quoted lines
> On 2008-06-15T06:38:21+0100, Johannes Schindelin wrote:
> > On Sat, 14 Jun 2008, Allan Wind wrote:
> > 
> > > Is anyone looking into fixing gc so it does not change permission on 
> > > files?  I would think it should consider current permissions of files 
> > > before umask.
> > > 
> > > I believe Nigel reported this issue with:
> > > http://thread.gmane.org/gmane.comp.version-control.git/79213/focus=79237
> > > and still seeing issues with 1.5.5.4.
> > 
> > It would have been nice to briefly illustrate the problem again.
> 
> Of course.
> 
> # umask
> umask 0022
> # find . -ls > /tmp/before
> # git gc
> Counting objects: 1435, done.
> Compressing objects: 100% (747/747), done.
> Writing objects: 100% (1435/1435), done.
> Total 1435 (delta 690), reused 1422 (delta 682)
> # find . -ls > /tmp/after
> 
> On these files group write is revoked when running gc (g-w).  /tmp/before:
> 
>  16420 662752 -rw-rw----   1 root     users    677990209 Jun 15 01:49 ./objects/pack/pack-f962a3321392570
> 5b321ad2ba6ccb0037114f92d.pack
>  16432   36 -rw-rw----   1 root     users       35504 Jun 15 01:49 ./objects/pack/pack-f962a33213925705b3
> 21ad2ba6ccb0037114f92d.idx
> ...
>  18258    4 drwxrwx---   2 allan    users        4096 Jun 15 01:47 ./logs/refs/heads
>  16481    8 -rw-rw----   1 root     users        6100 Jun 15 01:47 ./logs/refs/heads/master
> 
> and /tmp/after:
> 
>  16401 662752 -r--r--r--   1 root     root     677990209 Jun 15 01:59 ./objects/pack/pack-f962a3321392570
> 5b321ad2ba6ccb0037114f92d.pack
>  16404   36 -r--r--r--   1 root     root        35504 Jun 15 01:59 ./objects/pack/pack-f962a33213925705b3
> 21ad2ba6ccb0037114f92d.idx
> ...
>  16402    8 -rw-r--r--   1 root     root         6100 Jun 15 01:57 ./logs/refs/heads/master
>  16403    8 -rw-r--r--   1 root     root         6100 Jun 15 01:57 ./logs/HEAD
> 
> and these on these other read permissions (o+r) is added.  /tmp/before:
> 
>  16394    4 -rw-rw----   1 root     users          54 Jun 15 01:49 ./objects/info/packs
>  16481    8 -rw-rw----   1 root     users        6100 Jun 15 01:47 ./logs/refs/heads/master
>  16475    8 -rw-rw----   1 root     users        6100 Jun 15 01:47 ./logs/HEAD
>  16485   16 -rw-rw----   1 root     users       14773 Jun 15 01:47 ./packed-refs
> 
> and /tmp/after:
> 
>  16393    4 -rw-rw-r--   1 root     root           54 Jun 15 01:59 ./objects/info/packs
>  16402    8 -rw-r--r--   1 root     root         6100 Jun 15 01:57 ./logs/refs/heads/master
>  16403    8 -rw-r--r--   1 root     root         6100 Jun 15 01:57 ./logs/HEAD
>  16386   16 -rw-rw-r--   1 root     root        14773 Jun 15 01:57 ./packed-refs
> 
> I seem to recall that push to the repository also introduces files without
> group write permission.  Unfortunately it looks something broke when I ran
> gc.  Any help in getting my repository back up would be appreciated:

This above was without core.sharedrepository set. Setting core.sharedrepository to true, and repeating the experiment I get the following changes (starting out with files being 660):

245865 0 -rw-rw-r-- 1 allan users 0 Jun 15 18:25 ./info/refs 245883 4 -rw-rw-r-- 1 allan users 54 Jun 15 18:25 ./objects/info/packs 245882 662464 -r--r--r-- 1 allan users 677691559 Jun 15 18:25 ./objects/pack/pack-7d2c630cc2bf7621e14487fdde5907765ebb5d4d.pack 245886 36 -r--r--r-- 1 allan users 36128 Jun 15 18:25 ./objects/pack/pack-7d2c630cc2bf7621e14487fdde5907765ebb5d4d.idx 245885 4 -rw-rw-r-- 1 allan users 26 Jun 15 18:24 ./packed-refs

write permission is removed from the two pack files, and read permissions is granted for the other files which did not have them before.

/Allan
Previous: Allan Wind
Message 6 of 6 in “gc changes permissions of files”
  1. Allan WindJun 15, 2008
  2. Johannes SchindelinJun 15, 2008
  3. Allan WindJun 15, 2008
  4. Allan WindJun 15, 2008
  5. Allan WindJun 15, 2008
  6. Allan WindJun 15, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.