monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Updated Issue 97 - test diff_on_missing_trailing_newlin


From: code
Subject: [Monotone-devel] Updated Issue 97 - test diff_on_missing_trailing_newline_at_end_of_file fails on Cygwin (monotone)
Date: Wed, 27 Oct 2010 12:59:33 GMT

Hello,

The following issue has been updated:

97 - test diff_on_missing_trailing_newline_at_end_of_file fails on Cygwin
Project: monotone
Status: New
Reported by: Stephen Leake
URL: http://code.monotone.ca/p/monotone/issues/97/
Labels:
 Type:Defect
 Priority:Critical

Comments (last first):

# By Richard Levitte, Oct 27, 2010:

Further analysis shows that, in fact, Cygwin is regarded as unix by 
configure.ac.  This is probably normally a good thing, since it tries to 
emulate unix...  but when it comes to is_executable, maybe that's not the best 
idea.

So we have a choice.  Either add *-pc-cygwin in the case that catches Win32 
platforms in configure.ac, or make is_executable in unix/process.cc a special 
case for Cygwin.

# By Richard Levitte, Oct 27, 2010:

Looking at the source, I'd say that the problem lies in the added lua routine 
called is_executable().  The actual function that implements that routine can 
be found in unix/process.cc and win32/process.cc.  win32/process.cc does 
nothing (it just returns false), while unix/process.cc does what's sensible for 
Unix.

So, the question in the end is, which of those two does Cygwin use?  I'm 
guessing it uses unix/process.cc.  Doesn't seem to be the right thing to do, 
but I don't know enough about Cygwin to have an opinion, all I wanted was to 
point at where the problem should be.

# By Thomas Moschny, Oct 27, 2010:

How can "attrs can be set after a commit"?

Or, more precisely, how's that different from "file contents can be changed 
after a commit"?

Attributes are part of the manifest and thus of course part of the revision 
hash. Do you propose to change this?

# By Stephen Leake, Oct 27, 2010:

this test is also broken in the same way in version 0.48.

overriding the execute attr init function lets the test pass in 
8f507884dab9bab6b439cec51f6adc6d006d3e66:

attr_init_functions["mtn:execute"] =
   function(filename)
        return nil
   end

# By Stephen Leake, Oct 27, 2010:

Steps to reproduce the problem:
-------------------------------

1. checkout nvm.monotone rev 8f507884dab9bab6b439cec51f6adc6d006d3e66
2. configure for Cygwin
3. run test 

Expected result:
----------------
pass

Actual results:
---------------
fail on line 39

The immediate cause of failure is that the revid for the commit is different 
from the expected:

stdout:
#
# old_revision [b0598d59ea7c3b8b4a6f27e5ac80c1337c33f1c3]
#

file13.diff:
#
# old_revision [40ea110392539e19c2d251569a3610c0051e0c64]
#

This may be caused by Cygwin setting the executable attribute, while MinGW and 
Debian do not:

cygwin:
$../../../mtn.exe au get_manifest_of 
format_version "1"

dir ""

   file "file1"
content [a43dc27b1c92cccc533ceb3a27035128e26e5b07]
   attr "mtn:execute" "true"

   file "file2"
content [4f8091d2fa31b0598dd0ff6dc936f8d0b47b59d1]
   attr "mtn:execute" "true"


mingw:
../../../mtn.exe au get_manifest_of 
format_version "1"

dir ""

   file "file1"
content [a43dc27b1c92cccc533ceb3a27035128e26e5b07]

   file "file2"
content [4f8091d2fa31b0598dd0ff6dc936f8d0b47b59d1]

But that should not affect the revid; attrs can be set after a commit, so they 
should not change the revid.

Output of `mtn version --full`:
-------------------------------



--
Issue: http://code.monotone.ca/p/monotone/issues/97/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]