[issue1966] merge-on-update adds more changes?

Dirkjan Ochtman bugs at mercurial.selenic.com
Sat Jan 2 09:20:47 UTC 2010


New submission from Dirkjan Ochtman <dirkjan at ochtman.nl>:

Isn't this something we used to get right?

djc at miles crew $ hg id -nib
1139fcfeaeda+ 10195+ default
djc at miles crew $ hg diff
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -234,7 +234,8 @@

     def write_err(self, *args):
         try:
-            if not sys.stdout.closed: sys.stdout.flush()
+            if not hasattr(sys.stdout, 'closed') or not sys.stdout.closed:
+                sys.stdout.flush()
             for a in args:
                 sys.stderr.write(str(a))
             # stderr may be buffered under win32 when redirected to files,
djc at miles crew $ hg up stable
merging mercurial/ui.py
251 files updated, 1 files merged, 148 files removed, 0 files unresolved
djc at miles crew $ hg id -nib
a275c3997e03+ 10194+ stable
djc at miles crew $ hg diff
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -29,8 +29,11 @@
             self._ocfg = src._ocfg.copy()
             self._trustusers = src._trustusers.copy()
             self._trustgroups = src._trustgroups.copy()
+            self.environ = src.environ
             self.fixconfig()
         else:
+            # shared read-only environment
+            self.environ = os.environ
             # we always trust global config files
             for f in util.rcpath():
                 self.readconfig(f, trust=True)
@@ -231,7 +234,8 @@

     def write_err(self, *args):
         try:
-            if not sys.stdout.closed: sys.stdout.flush()
+            if not hasattr(sys.stdout, 'closed') or not sys.stdout.closed:
+                sys.stdout.flush()
             for a in args:
                 sys.stderr.write(str(a))
             # stderr may be buffered under win32 when redirected to files,
@@ -250,7 +254,13 @@
     def interactive(self):
         i = self.configbool("ui", "interactive", None)
         if i is None:
-            return sys.stdin.isatty()
+            try:
+                return sys.stdin.isatty()
+            except AttributeError:
+                # some environments replace stdin without implementing isatty
+                # usually those are non-interactive
+                return False
+
         return i

     def _readline(self, prompt=''):

----------
messages: 11358
nosy: djc
priority: bug
status: unread
title: merge-on-update adds more changes?

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue1966>
____________________________________________________


More information about the Mercurial-devel mailing list