Subject: bug#58192: 28.2; RCS integration issue

From: Eli Zaretskii <[email-masked]>
Date: Fri, 30 Sep 2022 15:24:06 +0300

[Please use Reply All to keep the bug tracker on the CC list.]

> Date: Fri, 30 Sep 2022 13:56:06 +0200 (CEST)
> From: "Meyer, Thomas" <[email-masked]>
> 
> Eli,
> 
> yes, I missed some information, the word "bla" was typed in as
> comment/summary for the commit.
> 
> Here the full details of my actions:
> 
> To reproduce:
> 
> find new file in new directory
> C-x v v (vc-next-action)
> Registration will work fine (Registering
> (c:/Users/meyert/Documents/RCS-test/a.txt)... done)
> change file (inserted a new line)
> save file
> C-x v v (vc-next-action) -> first error: a checkout is done, erasing the changes

This is not an error: with RCS you must check-out the file before you
can modify it, because RCS is a locking VCS.  Don't you see the buffer
displayed as read-only (with "%%" in the mode line) before you
check-out the file?

> change file again (inserted a new line)
> save file
> C-x v v (vc-next-action)
> Buffer *vc-log* prompts for a summary
> Enter "Bla" as summary
> C-c C-c (log-edit-done)
> check-in fails:
> 
> Buffer *vc* displays the following content:
> 
> c:\Users\meyert\Documents\RCS-test>c:\cygwin64\bin\rcs.exe ci -j -u1 "-mSummary: Bla 
> ci: no input file
> ci aborted
> 
> Buffer *Messages* reports
> 
> Checking in c:/Users/meyert/Documents/RCS-test/a.txt...
> progn: Failed (status 1): ci -j -u1 -mSummary: Bla
>  RCS/a.txt,v
> 
> interstingly, the buried buffer *vc-log* display a line break after the "Bla", that I never entered!

That is the problem: you need to find out how that happened.  Windows
shell doesn't support newlines embedded in command lines.

It doesn't happen in my case, FWIW.

>    d=`echo "$0" | sed 's|[^/]*$||'`
>    exec "$d"rcs ci "$@"
> 
>    # ci ends here
> 
> These wrappers are available only in the Cygwin shell, so we need
> Windows wrappers, e.g.
> 
> ci.cmd
> 
>    c:\cygwin64\bin\bash -c '/bin/%~n0 %*'

It's possible that the newline gets added as result of these multiple
indirections.  Or maybe something else is at work here: with my setup,
which uses just ci.exe, I cannot reproduce the problem.  Perhaps
stepping with Edebug through vc-rcs-checking would reveal something?
Do you see the variable 'comment' there having the newline?

> If you know better ways of coupling Emacs on Windows with Cygwin,
> please let me know.
> 
> Other free ports of RCS on windows are older than dirt, I fear.

Well, I'm a happy long-time user of RCS 5.7.1 ;-)

> I might add that the same emacs install has no problems when
> performing git integration.
> 
> Kind regards, Thomas