all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Reiner Steib <reiner.steib@gmx.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 4451@emacsbugs.donarmstrong.com
Subject: bug#4451: 23.1; EOL problems with vc-diff and cygwin
Date: Mon, 05 Oct 2009 18:07:53 +0200	[thread overview]
Message-ID: <20091005180753.1mcmt2jzswoko048@imap.uni-ulm.de> (raw)
In-Reply-To: <834oqqt63w.fsf@gnu.org>

Eli Zaretskii wrote:

> What I'd like to see is where in Emacs sources we examine the output
> we get from Diff, and where and why we err as to what EOL format
> should be used for decoding that output.

`vc-coding-system-for-diff' is called 2 times when I do `C-x v ='

1)
   vc-coding-system-for-diff("c:/Users/x123456/tmp/check-out/K3.xml")
   vc-diff-internal(t (CVS ("c:/Users/x123456/tmp/check-out/K3.xml"))  
nil nil t)
   vc-diff(nil t)
   call-interactively(vc-diff nil nil)

2)
   vc-coding-system-for-diff("c:/Users/x123456/tmp/check-out/K3.xml")
   vc-cvs-diff(("c:/Users/x123456/tmp/check-out/K3.xml") nil nil "*vc-diff*")
   apply(vc-cvs-diff (("c:/Users/x123456/tmp/check-out/K3.xml") nil  
nil "*vc-diff*"))
   vc-call-backend(CVS diff ("c:/Users/x123456/tmp/check-out/K3.xml")  
nil nil "*vc-diff*")
   vc-diff-internal(t (CVS ("c:/Users/x123456/tmp/check-out/K3.xml"))  
nil nil t)
   vc-diff(nil t)
   call-interactively(vc-diff nil nil)

> One possibility for this mistake might be that Diff produces
> inconsistent EOL format in its output, for example if Diff or its VC
> front-end outputs some headers that have Unix EOLs and then the actual
> diffs with DOS EOLs.

The repository file (K3.xml,v) has Unix EOLs.  But if I do a fresh
checkout, I get a file K3.xml with DOS EOLs (I think this is the usual
behavoir of the Windows cvs binaries[1] for text files unless you
specify the switch "-ko").  However, in my workflow I overwrite the file
with a Unix EOL file (exported from some application), do modifications,
diffs and check it in.

Probably this conversion is also the reason that "cvs diff --binary"
outputs "^M^M$" for the old file and "^M$" for the new file.  "cvs diff"
outputs consitent DOS EOLs (both diff markers and the text):

$ cvs diff SK3.xml | cat --show-all | grep -F -v '^M' | wc -l


> Another possibility is that somewhere along the chain of processing
> the output, we force EOL conversion to be Unix-style, instead of
> detecting EOLs dynamically, or maybe even forcing it to DOS (if we
> have clear evidence for doing the latter).

`vc-coding-system-for-diff' returns `utf-8-unix' in both calls.


Stefan Monnier wrote:
> Could it be that the RCS files accessed this way get an accidental
> LF->CRLF conversion done by the network-file-system?
> Seems pretty unlikely.  But could you try and copy (part of) the
> repository to a local directory and try the operation again, just to
> rule out any funny business from this side?

I copied the repository file to a local drive and also used local drive
working copy (drive c:).  But that doesn't make any difference.

Bye, Reiner

[1] $ cvs --version

Concurrent Versions System (CVS) 1.11.22 (client)

Copyright (C) 2006 Free Software Foundation, Inc.







  parent reply	other threads:[~2009-10-05 16:07 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-16 18:08 bug#4451: 23.1; EOL problems with vc-diff and cygwin Reiner Steib
2009-09-16 20:56 ` Eli Zaretskii
2009-09-17 14:26   ` Reiner Steib
2009-09-17 16:35     ` Stefan Monnier
2009-09-17 17:22       ` Eli Zaretskii
2009-09-17 20:59         ` Stefan Monnier
2009-09-18 11:29       ` Reiner Steib
2009-09-24 17:00         ` Reiner Steib
2009-09-24 22:07           ` Stefan Monnier
2009-09-25 19:11             ` Eli Zaretskii
2009-09-26  8:27               ` Reiner Steib
2009-09-26  9:20                 ` Eli Zaretskii
2009-09-27  0:36                   ` Stefan Monnier
2009-09-27  7:38                     ` Eli Zaretskii
2009-09-27 19:03                       ` Stefan Monnier
2009-09-27 20:35                         ` Reiner Steib
2009-09-28  1:08                           ` Stefan Monnier
2009-10-05 16:07                   ` Reiner Steib [this message]
2009-10-05 18:45                     ` Stefan Monnier
2009-10-05 20:58                     ` Eli Zaretskii
2010-07-15  7:22                       ` Reiner Steib
2010-07-15  8:33                         ` Eli Zaretskii
2010-07-16  6:51                           ` Reiner Steib
2010-07-16  8:05                             ` Andreas Schwab
2010-07-16 10:18                             ` Eli Zaretskii
2010-07-19  7:23                               ` Reiner Steib
2009-09-17 17:18     ` Eli Zaretskii
2009-09-18 11:31       ` Reiner Steib

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091005180753.1mcmt2jzswoko048@imap.uni-ulm.de \
    --to=reiner.steib@gmx.de \
    --cc=4451@emacsbugs.donarmstrong.com \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.