CVSNT text-vs-binary

sags <[email protected]> Sun, 5 Apr 2015 15:46:16 -0700 (PDT)
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <1996610297.4252.1428273976022.JavaMail.httpd@localhost>
------=_Part_4253_1963362041.1428273977249
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi all,

I attach here a patch I suggest for handling the CVSNT-specific way of dealing with text-versus-binary attributes. It is split into small *.patch files to ease the review.

The patches in the A-series modify rcparse to parse newphrases and pass then to the client.

The patches in the B-series modify cvs2svn-proper to deal with per-revision 'file modes', as used by CVSNT. A 'mode' property is added to revisions and set according to 'kopt' revision headers, if any. A number of PropertyHandlers (those that deal with EOLs and keyword expansion) are then changed to work both on files and revisions.

All tests from run_tests.py pass or fail in an identical manner both before and after applying these patches. The tests that fail (on my system, Windows + CVSNT) are:

(i) The 3 marked as XFAIL:
    XFAIL: run-tests.py 86: reveal a second bug that created a branch twice
    XFAIL: run-tests.py 128: optimal tag after deleting files
    XFAIL: run-tests.py 162: check adding .cvsignore to an existing branch

(ii) The following two, which fail with a RunProgramException:
    FAIL:  run-tests.py 132: verify that --use-rcs and --use-internal-co agree
    FAIL:  run-tests.py 133: verify that --use-internal-co --exclude=... works

    Looking at the code I see these two make use of "--use-rcs" and I don't have a
    RCS executable, so I guess this is normal.

As to handling CVSNT repositories, I used this version and it worked fine. That repo has files with "expand @b@;" at file level (being created a long time ago, I guess with standard CVS), files without file-level "expand" but with per-revision "kopt b;" (CVSNT-style), and files that have both types of headers. What I don't have is files with keywords to be expanded so that is not really tested, only EOL handling.

Hope this will be of some help,
sags

PS: I hope this is the correct list for suggesting patches. If not, I apologize.

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=3110857

To unsubscribe from this discussion, e-mail: [[email protected]].
------=_Part_4253_1963362041.1428273977249
Content-Type: application/zip; name=CVSNT-handling-text-vs-binary.zip
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=CVSNT-handling-text-vs-binary.zip

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
oe50GWwyAz14vCUOClx8uw42gQPFnw9WAwntTbcjzvuQJt9ZDesQS1UPNp4b/EusN1TFfDrxB1BL
AQIUABQAAAAIAFcChkYsbZSqNQQAACYLAAA6AAAAAAAAAAEAIAAAAAAAAABCMTItU1ZOS2V5d29y
ZEhhbmRsaW5nUHJvcGVydHlTZXR0ZXItVXBkYXRlLWl0LXRvLWJlLnBhdGNoUEsBAhQAFAAAAAgA
WQKGRgDQ7H5SAgAAKgUAADoAAAAAAAAAAQAgAAAAjQQAAEIxMy1LZXl3b3JkSGFuZGxpbmdQcm9w
ZXJ0eVNldHRlci1kdmNzLVVwZGF0ZS1pdC10by0ucGF0Y2hQSwECFAAUAAAACABbAoZGkk3sr08D
AAAXCQAAOgAAAAAAAAABACAAAAA3BwAAQjE0LVNWTkVPTEZpeFByb3BlcnR5U2V0dGVyLVVwZGF0
ZS1pdC10by1iZS1hLXJldmlzaS5wYXRjaFBLAQIUABQAAAAIADAChkbmiuiSdgcAAEIWAAA6AAAA
AAAAAAEAIAAAAN4KAABBMDEtcmNwYXJzZS1Nb2RpZnktdGhlLXB1YmxpYy1pbnRlcmZhY2UtdG8t
YmUtYWJsZS10LnBhdGNoUEsBAhQAFAAAAAgAQAKGRpOHUvlaBgAA8BIAADoAAAAAAAAAAQAgAAAA
rBIAAEEwMi1yY3BhcnNlLUltcGxlbWVudC1wYXJzaW5nLWFuLXBhc3Npbmctb2YtbmV3cGhyYXMu
cGF0Y2hQSwECFAAUAAAACABCAoZG4ktaIZwFAABGDwAAOgAAAAAAAAABACAAAABeGQAAQjAxLUFk
ZC1hLW1vZGUtcHJvcGVydHktZm9yLUNWUy1yZXZpc2lvbnMtQ1ZTUmV2aXNpby5wYXRjaFBLAQIU
ABQAAAAIAEUChkabSSIAeQIAACAFAAA6AAAAAAAAAAEAIAAAAFIfAABCMDItQWRhcHQtdGhlLXNp
bmstaW50ZXJmYWNlLXRvLXRoZS1uZXctb25lLWluLXJjcGFyLnBhdGNoUEsBAhQAFAAAAAgARgKG
RrO1aj2lAQAAFQMAADoAAAAAAAAAAQAgAAAAIyIAAEIwMy1TZXQtdGhlLXBlcnJldmlzaW9uLWZp
bGUtbW9kZS1hY2NvcmRpbmctdG8tdGhlLUMucGF0Y2hQSwECFAAUAAAACABIAoZGJYDKfTAFAAAv
EwAAOAAAAAAAAAABACAAAAAgJAAAQjA0LVJlZmFjdG9yLXRoZS1wcm9wZXJ0eS1zZXR0ZXJzLWFi
c3RyYWN0LWNsYXNzZXMucGF0Y2hQSwECFAAUAAAACABKAoZGgXuvRCQFAAAvIAAAOgAAAAAAAAAB
ACAAAACmKQAAQjA1LUNWU0JpbmFyeUVPTFN0eWxlU2V0dGVyLVJlbmFtZWQtZnJvbS1DVlNCaW5h
cnlGaS5wYXRjaFBLAQIUABQAAAAIAEsChkaRV7806QEAAEADAAA6AAAAAAAAAAEAIAAAACIvAABC
MDYtQ1ZTQmluYXJ5RU9MU3R5bGVTZXR0ZXItQmFja3dhcmRzLWNvbXBhdGliaWxpdHktLnBhdGNo
UEsBAhQAFAAAAAgATQKGRiJcbNISBAAA2Q4AADoAAAAAAAAAAQAgAAAAYzEAAEIwNy1EZWZhdWx0
RU9MU3R5bGVTZXR0ZXItVXBkYXRlLWl0LXRvLWJlLWEtcmV2aXNpb24ucGF0Y2hQSwECFAAUAAAA
CABQAoZG2wgwvrQEAACbGQAAOgAAAAAAAAABACAAAADNNQAAQjA4LVNWTkJpbmFyeUtleXdvcmRz
UHJvcGVydHlTZXR0ZXItUmVuYW1lZC1mcm9tLS1TVi5wYXRjaFBLAQIUABQAAAAIAFIChkadgtCS
1wEAAHUDAAA6AAAAAAAAAAEAIAAAANk6AABCMDktU1ZOQmluYXJ5S2V5d29yZHNQcm9wZXJ0eVNl
dHRlci1CYWNrd2FyZHMtY29tcGF0LnBhdGNoUEsBAhQAFAAAAAgAUwKGRkJszFUPBAAAdw0AADoA
AAAAAAAAAQAgAAAACD0AAEIxMC1LZXl3b3Jkc1Byb3BlcnR5U2V0dGVyLVVwZGF0ZS1pdC10by1i
ZS1hLXJldmlzaW8ucGF0Y2hQSwECFAAUAAAACABVAoZGIaTebyACAAAmBAAAOgAAAAAAAAABACAA
AABvQQAAQjExLUNvbmRpdGlvbmFsUHJvcGVydHlTZXR0ZXItU2V0LWEtbW9yZS1hcHByb3ByaWF0
ZS5wYXRjaFBLBQYAAAAAEAAQAH4GAADnQwAAAAA=
------=_Part_4253_1963362041.1428273977249--