Re: git-pull sets write bit, git-push does not
- From
- Matt Pearson <404emailnotfound@gmail.com>
- Date
- Aug 2, 2008, 23:18 UTC
- Message-ID
- <706b4240808021618y5604b7c9h915237c30d87dace@mail.gmail.com>
- In-Reply-To
- <ee521d6f0808021532k66bc5b24ma2eeb51021fb5f36@mail.gmail.com>
On Sat, Aug 2, 2008 at 6:32 PM, Alexander E Genaud <alex@genaud.net> wrote:
Show 13 quoted lines
> git-pull sets write bit, git-push does not > > Hello, > > Background: I am using Git locally with ClearCase upstream. I > initialized a Git repository on top of a ClearCase snapshot view, > while my work branches are in a clone. As ClearCase is particular > about the write bit, I have come to depend on an undocumented feature > of Git. Namely, that git-push preserves read only permissions, while > git-pull sets modified files writable. > > Can git-push be relied upon to preserve the write bit (readonly)? Why > is git-pull different? Is it a side effect of the plumbing?
Push and pull are not opposite operations: the opposite of push is fetch. This is because pull updates the working copy, while push does not (like fetch, it only modifies the ref).
Show 47 quoted lines
> > Thanks, > Alex > > http://genaud.net/2008/08/clearcase-globally-git-locally/ > > > Simplified case: > > echo -- > echo create a repo r1 with files A and B committed > echo -- > mkdir r1 > cd r1 > echo A > A > echo B > B > git init > git add . > git commit -m init > > echo -- > echo create an identical repo r2 whose files are readonly > echo -- > cp -r ../r1 ../r2 > chmod u-w ../r2/[AB] > > echo -- > echo push a modification of A from r1 to r2 > echo -- > echo AA > A > git commit -a -m modA > git push ../r2 > > echo -- > echo pull a modification of B from r1 to r2 > echo -- > echo BB > B > git commit -a -m modB > cd ../r2 > git pull ../r1 > > echo -- > echo notice that pushed A remains readonly > echo while pulled B has become writable > echo -- > ls -l >
After running this: $ cat A A $ cat ../r1/A AA
The working copy in r2 was not updated with the changes you pushed to it (both the content and the mode change).