Merge with mpm
authorBrendan Cully <brendan@kublai.com>
Fri, 08 Dec 2006 12:53:51 -0800
changeset 3832 08c169cbd9e1
parent 3831 2db191165e9a (current diff)
parent 3823 676b75547d13 (diff)
child 3833 63f8f74ac4a8
Merge with mpm
mercurial/commands.py
--- a/mercurial/commands.py	Fri Dec 08 12:52:17 2006 -0800
+++ b/mercurial/commands.py	Fri Dec 08 12:53:51 2006 -0800
@@ -856,6 +856,10 @@
 
     Differences between files are shown using the unified diff format.
 
+    NOTE: diff may generate unexpected results for merges, as it will
+    default to comparing against the working directory's first parent
+    changeset if no revisions are specified.
+
     When two revision arguments are given, then changes are shown
     between those revisions. If only one revision is specified then
     that revision is compared to the working directory, and, when no
@@ -879,7 +883,10 @@
     Print the changeset header and diffs for one or more revisions.
 
     The information shown in the changeset header is: author,
-    changeset hash, parent and commit comment.
+    changeset hash, parent(s) and commit comment.
+
+    NOTE: export may generate unexpected diff output for merge changesets,
+    as it will compare the merge changeset against its first parent only.
 
     Output may be to a file, in which case the name of the file is
     given using a format string.  The formatting rules are as follows:
@@ -1477,6 +1484,12 @@
     non-trivial parents, user, date and time, and a summary for each
     commit. When the -v/--verbose switch is used, the list of changed
     files and full commit message is shown.
+
+    NOTE: log -p may generate unexpected diff output for merge
+    changesets, as it will compare the merge changeset against its
+    first parent only. Also, the files: list will only reflect files
+    that are different from BOTH parents.
+
     """
 
     get = util.cachefunc(lambda r: repo.changectx(r).changeset())
@@ -2174,6 +2187,11 @@
     files that match are shown.  Files that are clean or ignored, are
     not listed unless -c (clean), -i (ignored) or -A is given.
 
+    NOTE: status may appear to disagree with diff if permissions have
+    changed or a merge has occurred. The standard diff format does not
+    report permission changes and diff only reports changes relative
+    to one merge parent.
+
     If one revision is given, it is used as the base revision.
     If two revisions are given, the difference between them is shown.
 
--- a/mercurial/context.py	Fri Dec 08 12:52:17 2006 -0800
+++ b/mercurial/context.py	Fri Dec 08 12:53:51 2006 -0800
@@ -384,7 +384,10 @@
         for i, l in (("a", added), ("m", modified), ("u", unknown)):
             for f in l:
                 man[f] = man.get(copied.get(f, f), nullid) + i
-                man.set(f, util.is_exec(self._repo.wjoin(f), man.execf(f)))
+                try:
+                    man.set(f, util.is_exec(self._repo.wjoin(f), man.execf(f)))
+                except OSError:
+                    pass
 
         for f in deleted + removed:
             if f in man: