Issue1802

Title 'hg merge' forgets a file's x-attribute on windows
Priority urgent Status chatting
Superseder Nosy List JonnyDee, abuehl, mg, pmezard
Assigned To Topics

Created on 2009-08-19.17:18:38 by JonnyDee, last changed 2009-08-23.10:05:57 by pmezard.

Messages
msg10359 (view) Author: JonnyDee Date: 2009-08-19.18:06:12
Sorry, forget to tell you that this behavior is shown using Mercurial V1.3.1.

Additionally, I would like to tell you why, at least for us, this bug is
urgent. We develop on Windows but a Linux Server running Hudson checks out
our sources from a Mercurial repository and builds our sources. There are a
lot of Bash-Scripts which are also checked out from our repository. Now ig
we check in a script on Windows we cannot set the 'x' bit (I don't know a
way how to do it, at least). So we 'chmod +x' the Bash scripts and check
them in again. These changes often need to be merged by the developers
working on Windows. However, everytime a merge occurs on Windows all the
x-bits are lost and with their next commit/push to our central repository
the Hudson Server checks out the changes and starts building. However, the
build scripts are not executable anymore and our build fails...

So even if the x-bit issue seems not urgent to most of you it is definitely
a show stopper for us. We can workaround this issue only by making sure all
developers can pull the 'chmod +x' Bash script changes without needing a 'hg
merge'. In other words, everytime a bash script is added and/or chmod'ed we
need to synchronize all developers to a point where they can safely pull.
The advantages of working with a DVCS vanish then...
msg10358 (view) Author: JonnyDee Date: 2009-08-19.17:18:37
Suppose we have three repositories R, RA, RB. RA and RB are fresh clones of
A. RA lies on a Windows computer, RB on a Linux computer. Now suppose
further that in RB a file's attribute is is changed from '-x' to '+x' using
'chmod +x file'. This change now is committed to RB and pushed to R.
Meanwhile, some changes were committed to RA on Windows. For RA now a 'hg
pull -u' and a 'hg merge' (without conflicts) followed by a 'hg commit' is
done (or, alternatively, a 'hg fetch'). After merging, these changes are
pushed to R. Everything works well, except that now the file's '+x' has
vanished. If the changes from R now are pulled into RB using 'hg pull -u'
the file 'file' has no '+x' attribute anymore. This is a bug, I think,
because the '+x' bit should be merged into the RA's manifest.
History
Date User Action Args
2009-08-23 10:05:57pmezardsetnosy: + pmezard
2009-08-19 18:06:12JonnyDeesetstatus: unread -> chatting
messages: + msg10359
2009-08-19 17:49:51mgsetnosy: + mg
2009-08-19 17:32:50abuehlsetnosy: + abuehl
2009-08-19 17:18:38JonnyDeecreate