RFC: New Response type to aid rlog reponse parsing
patrick keshishian <[email protected]> Fri, 3 Nov 2017 22:48:01 -0700
| Newsgroups | gmane.comp.version-control.cvs.general |
|---|---|
| Message-ID | <CAN0yQBrN+fRCbA0J+D+C5cXUEZ4csVgDw--s5MscmLWcrmYwdg@mail.gmail.com> |
--001a114fd6dcb3775f055d21c31a Content-Type: text/plain; charset="UTF-8" Greetings, I am hoping you would be open to adding a new (optional) response type. Motivation behind this addition is to aid clients distinguish the free-form log/commit messages in response to an rlog query/request. The new response type I am proposing is LOGM. A server recognizing it in Valid-responses list, will prepend "LOGM " to each log/commit message line (rather than "M ") while servicing rlog requests. Servers not recognizing it will work as they do today. With this change in effect, all guess-work over where a log/commit message begins and ends is eliminated. I ran into at least three different log/commit message forms which confused CVSps and then in turn Git-cvsimport. I have documented this [1] for interested parties. It is a rather long-ish document. I have done my best to organize the information for easy digestion and reference. Attached is a patch implementing LOGM change against cvs-1.11.23 downloaded from your site (unfortunately I couldn't get sources through anoncvs). The changes are fairly simple, and the best I can tell, backward compatible with unpatched components. Given this, I hope you are open to accepting these changes. Cheers, --patrick [1] http://sidster.com/code/cvs2git/ --001a114fd6dcb3775f055d21c31a Content-Type: text/plain; charset="US-ASCII"; name="cvs-1.11.23.logm.patch.txt" Content-Disposition: attachment; filename="cvs-1.11.23.logm.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 ZGlmZiAtcnVwIGN2cy0xLjExLjIzLm9yaWcvc3JjL2NsaWVudC5jIGN2cy0xLjExLjIzL3NyYy9j bGllbnQuYwotLS0gY3ZzLTEuMTEuMjMub3JpZy9zcmMvY2xpZW50LmMJV2VkIE1heSAgNyAwODo1 NzozNCAyMDA4CisrKyBjdnMtMS4xMS4yMy9zcmMvY2xpZW50LmMJRnJpIE5vdiAgMyAxNjozNzoz NCAyMDE3CkBAIC0zMzQyLDYgKzMzNDIsMTMgQEAgc3RydWN0IHJlc3BvbnNlIHJlc3BvbnNlc1td ID0KICAgICBSU1BfTElORSgiRSIsIGhhbmRsZV9lLCByZXNwb25zZV90eXBlX25vcm1hbCwgcnNf ZXNzZW50aWFsKSwKICAgICBSU1BfTElORSgiRiIsIGhhbmRsZV9mLCByZXNwb25zZV90eXBlX25v cm1hbCwgcnNfb3B0aW9uYWwpLAogICAgIFJTUF9MSU5FKCJNVCIsIGhhbmRsZV9tdCwgcmVzcG9u c2VfdHlwZV9ub3JtYWwsIHJzX29wdGlvbmFsKSwKKyAgICAvKgorICAgICAqIExvZyBtZXNzYWdl IG1hcmtlci4KKyAgICAgKiBQcm9ncmFtcyB3aGljaCBwYXJzZSBybG9nIG91dHB1dCBuZWVkIHRo aXMgZmVhdHVyZSBzbyB0byBjb3JyZWN0bHkKKyAgICAgKiBwYXJzZSB1c2VyLWVudGVyZWQsIGZy ZWUtZm9ybSB0ZXh0IGluIHRoZSBjb21taXQgbWVzc2FnZXMuCisgICAgICogQ1ZTIGNsaWVudCBk b2Vzbid0LCBzbyBmbGl0ZXIgaXQgdGhyb3VnaCBoYW5kbGVfbS4KKyAgICAgKi8KKyAgICBSU1Bf TElORSgiTE9HTSIsIGhhbmRsZV9tLCByZXNwb25zZV90eXBlX25vcm1hbCwgcnNfb3B0aW9uYWwp LAogICAgIC8qIFBvc3NpYmx5IHNob3VsZCBiZSByZXNwb25zZV90eXBlX2Vycm9yLiAgKi8KICAg ICBSU1BfTElORShOVUxMLCBOVUxMLCByZXNwb25zZV90eXBlX25vcm1hbCwgcnNfZXNzZW50aWFs KQogCmRpZmYgLXJ1cCBjdnMtMS4xMS4yMy5vcmlnL3NyYy9jdnMuaCBjdnMtMS4xMS4yMy9zcmMv Y3ZzLmgKLS0tIGN2cy0xLjExLjIzLm9yaWcvc3JjL2N2cy5oCUZyaSBBdWcgMjUgMDg6NDg6NTUg MjAwNgorKysgY3ZzLTEuMTEuMjMvc3JjL2N2cy5oCUZyaSBOb3YgIDMgMTY6Mzg6NDIgMjAxNwpA QCAtOTM0LDMgKzkzNCw0IEBAIGV4dGVybiB2b2lkIGN2c19vdXRlcnIgUFJPVE8gKChjb25zdCBj aGFyICosIHNpemVfdCkpOwogZXh0ZXJuIHZvaWQgY3ZzX2ZsdXNoZXJyIFBST1RPICgodm9pZCkp OwogZXh0ZXJuIHZvaWQgY3ZzX2ZsdXNob3V0IFBST1RPICgodm9pZCkpOwogZXh0ZXJuIHZvaWQg Y3ZzX291dHB1dF90YWdnZWQgUFJPVE8gKChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikpOwor ZXh0ZXJuIHZvaWQgY3ZzX291dHB1dF9sb2dtIFBST1RPICgoY29uc3QgY2hhciAqLCBzaXplX3Qp KTsKZGlmZiAtcnVwIGN2cy0xLjExLjIzLm9yaWcvc3JjL2xvZy5jIGN2cy0xLjExLjIzL3NyYy9s b2cuYwotLS0gY3ZzLTEuMTEuMjMub3JpZy9zcmMvbG9nLmMJTW9uIEphbiAyOCAwNjo1NTo0NSAy MDA4CisrKyBjdnMtMS4xMS4yMy9zcmMvbG9nLmMJRnJpIE5vdiAgMyAxNjozOTo0MSAyMDE3CkBA IC0xNzE0LDkgKzE3MTQsNyBAQCBsb2dfdmVyc2lvbiAobG9nX2RhdGEsIHJldmxpc3QsIHJjcywg dmVyLCB0cnVuaykKICAgICB7CiAJLyogRklYTUU6IFRlY2huaWNhbGx5LCB0aGUgbG9nIG1lc3Nh Z2UgY291bGQgY29udGFpbiBhIG51bGwKICAgICAgICAgICAgYnl0ZS4gICovCi0JY3ZzX291dHB1 dCAocC0+ZGF0YSwgMCk7Ci0JaWYgKCgoY2hhciAqKXAtPmRhdGEpW3N0cmxlbiAocC0+ZGF0YSkg LSAxXSAhPSAnXG4nKQotCSAgICBjdnNfb3V0cHV0ICgiXG4iLCAxKTsKKwljdnNfb3V0cHV0X2xv Z20gKHAtPmRhdGEsIDApOwogICAgIH0KIH0KIApkaWZmIC1ydXAgY3ZzLTEuMTEuMjMub3JpZy9z cmMvc2VydmVyLmMgY3ZzLTEuMTEuMjMvc3JjL3NlcnZlci5jCi0tLSBjdnMtMS4xMS4yMy5vcmln L3NyYy9zZXJ2ZXIuYwlXZWQgTWF5ICA3IDA4OjU3OjM0IDIwMDgKKysrIGN2cy0xLjExLjIzL3Ny Yy9zZXJ2ZXIuYwlGcmkgTm92ICAzIDE2OjQwOjQ3IDIwMTcKQEAgLTY3NjIsNCArNjc2Miw0NyBA QCBjdnNfb3V0cHV0X3RhZ2dlZCAodGFnLCB0ZXh0KQogCWVsc2UgaWYgKHRleHQgIT0gTlVMTCkK IAkgICAgY3ZzX291dHB1dCAodGV4dCwgMCk7CiAgICAgfQorfQorCit2b2lkCitjdnNfb3V0cHV0 X2xvZ20gKHN0ciwgbGVuKQorICAgIGNvbnN0IGNoYXIgKnN0cjsKKyAgICBzaXplX3QgbGVuOwor eworI2lmZGVmIFNFUlZFUl9TVVBQT1JUCisgICAgY29uc3QgY2hhciAqcDsKKyAgICBzaXplX3Qg bjsKKyAgICBzdHJ1Y3QgYnVmZmVyICpidWY7CisKKyAgICBpZiAoIXNlcnZlcl9hY3RpdmUgfHwg IXN1cHBvcnRlZF9yZXNwb25zZSAoIkxPR00iKSkKKwlyZXR1cm4gY3ZzX291dHB1dCAoc3RyLCBs ZW4pOworCisgICAgaWYgKGVycm9yX3VzZV9wcm90b2NvbCkKKwlidWYgPSBidWZfdG9fbmV0Owor ICAgIGVsc2UKKwlidWYgPSBwcm90b2NvbDsKKworICAgIGlmIChsZW4gPT0gMCkKKwlsZW4gPSBz dHJsZW4gKHN0cik7CisKKyAgICBmb3IgKDsgcCA9IHN0cmNocihzdHIsICdcbicpOyBzdHIgPSBw ICsgMSkKKyAgICB7CisJbiA9IHAgLSBzdHIgKyAxOworCWJ1Zl9vdXRwdXQwIChidWYsICJMT0dN ICIpOworCWJ1Zl9vdXRwdXQgKGJ1Ziwgc3RyLCBuKTsKKwlsZW4gLT0gbjsKKyAgICB9IAorICAg IGlmIChsZW4gPiAwKQorICAgIHsKKwlidWZfb3V0cHV0MCAoYnVmLCAiTE9HTSAiKTsKKwlidWZf b3V0cHV0IChidWYsIHN0ciwgbGVuKTsKKwlidWZfb3V0cHV0IChidWYsICJcbiIsIDEpOworICAg IH0KKworICAgIGlmICghZXJyb3JfdXNlX3Byb3RvY29sKQorCWJ1Zl9zZW5kX2NvdW50ZWQgKHBy b3RvY29sKTsKKworI2Vsc2UgLyogIVNFUlZFUl9TVVBQT1JUICovCisgICAgY3ZzX291dHB1dCAo c3RyLCBsZW4pOworI2VuZGlmCiB9Cg== --001a114fd6dcb3775f055d21c31a--