Spurious 'M' status (was: Re: Mozilla: hg as a collaboration tool)

Steve Borho steve at borho.org
Tue Feb 12 08:07:36 CST 2008


On Tue, 2008-02-12 at 13:55 +0000, Pazu wrote:
> Matt Mackall <mpm <at> selenic.com> writes:
> 
> > > Somewhat off-topic, I have run into the situation - which of course I 
> > > have no idea how to reproduce - that 'hg stat' shows some files as 
> > > modified that I certainly did not intentionally edit [...]
> 
> > We've gotten a report where somehow the dirstate thought the exec bit
> > was not what it should be, but we don't know how to reproduce it.
> 
> I've run in a situation where two copies of hg in the same machine (native
> win32 and cygwin versions) disagree about modified files. Here's how I can
> reproduce this:
> 
> First, clone a remote repository using cygwin hg:
> 
> pazu at kombi:$ hg clone https://hg.pazu.com.br/tenjin
> destination directory: tenjin
> http authorization required
> realm: Mercurial Repo
> user: pazu
> password:
> requesting all changes
> adding changesets
> adding manifests
> adding file changes
> added 1 changesets with 62 changes to 62 files
> 62 files updated, 0 files merged, 0 files removed, 0 files unresolved
> 
> Then just issue a 'status' using win32 hg:
> 
> C:\users\pazu\tenjin>hg status
> M README
> M Rakefile
> M app\controllers\application.rb
> M app\helpers\application_helper.rb
> M app\models\user.rb
> M config\boot.rb
> [...]
> 
> The same thing happens if I do this the other way around (clone with win32,
> status with cygwin).
> 
> debugstate and manifest seems to agree, using both versions:
> 
> pazu at kombi:~/tenjin$ hg debugstate
> n 644         18 2008-02-12 11:40:40 .hgignore
> n 755       8819 2008-02-12 11:40:40 README
> n 755        307 2008-02-12 11:40:40 Rakefile
> [...]
> 
> C:\users\pazu\tenjin>hg debugstate
> n 644         18 2008-02-12 11:40:40 .hgignore
> n 755       8819 2008-02-12 11:40:40 README
> n 755        307 2008-02-12 11:40:40 Rakefile
> [...]
> 
> pazu at kombi:~/tenjin$ hg manifest --debug
> d13cb68919e096fa9cc1b8674c01a3ed744b232f 644   .hgignore
> a128f3540484a21a1bf13c1a56a8a7e776cf4651 755 * README
> e97feff1b550a1634a19e25639f568bc0b29ee2d 755 * Rakefile
> [...]
> 
> C:\users\pazu\tenjin>hg manifest --debug
> d13cb68919e096fa9cc1b8674c01a3ed744b232f 644   .hgignore
> a128f3540484a21a1bf13c1a56a8a7e776cf4651 755 * README
> e97feff1b550a1634a19e25639f568bc0b29ee2d 755 * Rakefile
> [...]
> 
> I have no idea what could be causing this, but it's a great source of headache
> for me. I can't live without cygwin on windows, but many tools, like Netbeans
> Mercurial integration won't work with the cygwin version, so I need the win32
> version installed.

I suspect that win32 and cygwin are 'disagreeing' on what the native
eoln format is supposed to be.   If you clone the same remote repository
in both cygwin and native and look in .hg/ in both, you can probably
figure out which file is the cause.

-- 
Steve Borho (steve at borho.org)
http://www.borho.org/~steve/steve.asc
Key fingerprint = 2D08 E7CF B624 624C DE1F  E2E4 B0C2 5292 F2C6 2C8C



More information about the Mercurial mailing list