Discussion:
RCS import
(too old to reply)
Andy Goth
2014-04-02 03:24:44 UTC
Permalink
The attached script imports an RCS repository into Fossil. It doesn't
support branching nor symbolic names, and it has a few peculiarities
designed to accommodate the RCS repository I just processed.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Andy Goth
2014-04-02 17:42:18 UTC
Permalink
Post by Andy Goth
The attached script imports an RCS repository into Fossil. It doesn't
support branching nor symbolic names, and it has a few peculiarities
designed to accommodate the RCS repository I just processed.
I should mention that this script opens the repository being created
into a subdirectory called tmp. You're best off not having a directory
with that name wherever your current working directly is.

For me, the slowest part of the import was by far the RCS checkouts.
Optimizing this would require writing a custom RCS checkout
implementation that doesn't have to start from scratch for each revision
that's requested, since it will ultimately have to produce all
revisions. It might be possible to write this code in Tcl and still
have it be faster than this current implementation.

I wish Tcl had a [file tempdir] command...
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Andreas Kupries
2014-04-02 18:12:48 UTC
Permalink
Post by Andy Goth
For me, the slowest part of the import was by far the RCS checkouts.
Optimizing this would require writing a custom RCS checkout implementation
that doesn't have to start from scratch for each revision that's requested,
since it will ultimately have to produce all revisions. It might be
possible to write this code in Tcl and still have it be faster than this
current implementation.
Very early fossil had a CVS importer written in Tcl.
While developement and maintenance has been abandoned you should still
be able to find it in the tools/cvs2fossil directory of the fossil
sources.

As a CVS repository is "just" a collection of RCS files this code had
a parser for rcs files ... tools/cvs2fossil/lib/rcsparser.tcl
--
Andreas Kupries
Senior Tcl Developer
Code to Cloud: Smarter, Safer, Faster(tm)
F: 778.786.1133
***@activestate.com
http://www.activestate.com
Learn about Stackato for Private PaaS: http://www.activestate.com/stackato

EuroTcl'2014, July 12-13, Munich, GER -- http://www.eurotcl.tcl3d.org/
21'st Tcl/Tk Conference: Nov 10-14, Portland, OR, USA --
http://www.tcl.tk/community/tcl2014/
Stephan Beal
2014-04-02 17:56:53 UTC
Permalink
Post by Andy Goth
The attached script imports an RCS repository into Fossil. It doesn't
support branching nor symbolic names, and it has a few peculiarities
designed to accommodate the RCS repository I just processed.
LOL! When i saw the subject line i thought, "surely someone doesn't want us
to write an RCS importer!" i haven't touched RCS since the mid 1990's, but
i'm thrilled to see someone create a tool for exporting RCS "repos" to
fossil :).
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Andy Goth
2014-04-02 18:14:55 UTC
Permalink
Post by Stephan Beal
Post by Andy Goth
The attached script imports an RCS repository into Fossil.
i'm thrilled to see someone create a tool for exporting RCS "repos" to
fossil :).
These scripts I've written, is there a public place to collect,
advertise, and improve them? This script imports from RCS, and the one
I wrote before imports from Fossil (haha, that's really what it does).
They're not fully featured; for instance neither does branches. But
they meet my minimum requirements.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Stephan Beal
2014-04-02 18:21:24 UTC
Permalink
Post by Andy Goth
These scripts I've written, is there a public place to collect,
advertise, and improve them?
You've done the first part ;). If you are up for this:

http://fossil-scm.org/index.html/doc/trunk/www/copyright-release.html

then you can get commit access and add them to, e.g., tools/rcs2fossil. If
you're not interested in commit access, then i'm sure one of us would be
happy to put your script there after clarifying...

@Richard: please correct me if i'm wrong in thinking that this type of
external script contribution does not necessarily need a waiver on file?
Post by Andy Goth
This script imports from RCS, and the one
I wrote before imports from Fossil (haha, that's really what it does).
LOL! You must really love RCS!

They're not fully featured; for instance neither does branches. But
Post by Andy Goth
they meet my minimum requirements.
i didn't even know RCS could do branches. My RCS phase was short-lived
before "upgrading" to CVS.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Andreas Kupries
2014-04-02 18:25:35 UTC
Permalink
Post by Stephan Beal
Post by Andy Goth
This script imports from RCS, and the one
I wrote before imports from Fossil (haha, that's really what it does).
LOL! You must really love RCS!
Post by Andy Goth
They're not fully featured; for instance neither does branches. But
they meet my minimum requirements.
i didn't even know RCS could do branches. My RCS phase was short-lived
before "upgrading" to CVS.
CVS branches are based solely on RCS branches, without any additional
information.
Which is why all the cvs converters out there have to go to great
lengths with lots of heuristics to assemble proper branches, as the
information is dispersed in all the RCS files of the CVS repo and may
not even match up properly, in terms of revision times, etc.

IIRC the cvs2svn people had the best writeup of the horrors they encountered.
--
Andreas Kupries
Senior Tcl Developer
Code to Cloud: Smarter, Safer, Faster(tm)
F: 778.786.1133
***@activestate.com
http://www.activestate.com
Learn about Stackato for Private PaaS: http://www.activestate.com/stackato

EuroTcl'2014, July 12-13, Munich, GER -- http://www.eurotcl.tcl3d.org/
21'st Tcl/Tk Conference: Nov 10-14, Portland, OR, USA --
http://www.tcl.tk/community/tcl2014/
Richard Hipp
2014-04-02 18:42:48 UTC
Permalink
Post by Stephan Beal
Post by Andy Goth
These scripts I've written, is there a public place to collect,
advertise, and improve them?
http://fossil-scm.org/index.html/doc/trunk/www/copyright-release.html
then you can get commit access and add them to, e.g., tools/rcs2fossil. If
you're not interested in commit access, then i'm sure one of us would be
happy to put your script there after clarifying...
@Richard: please correct me if i'm wrong in thinking that this type of
external script contribution does not necessarily need a waiver on file?
It would be good to keep everything in the self-hosting Fossil repo under a
single license. That avoids license confusion. If it becomes an issue,
I'm happy to host separate repositoies on the www.fossil-scm.org website
for contributed stuff.
Andy Goth
2014-04-02 18:57:07 UTC
Permalink
Post by Stephan Beal
Post by Andy Goth
These scripts I've written, is there a public place to collect,
advertise, and improve them?
http://fossil-scm.org/index.html/doc/trunk/www/copyright-release.html
I've actually already signed that form, once for Fossil and once for
SQLite, and I gave them to drh in person at the 18th Annual Tcl
Conference (2011) in Manassas. However, this was immediately after the
AlcoBOF, so I wouldn't be too surprised if it got lost. Richard, please
confirm.
Post by Stephan Beal
then you can get commit access and add them to, e.g., tools/rcs2fossil.
Okay, though not sure what else I'd commit. Maybe I could have
committed a fix last night for the crash on CR/LF conversion, though I
wouldn't trust myself with trunk.
Post by Stephan Beal
Post by Andy Goth
This script imports from RCS, and the one I wrote before imports
from Fossil (haha, that's really what it does).
LOL! You must really love RCS!
Nope, sure don't. RCS sucks. But we have an old RCS repository with
lots of useful data in it, and now Fossil gives us a wonderful way to
organize and search it.

And the one that "imports from Fossil" actually imports from one Fossil
repository into another. Not generally useful, not worth publishing
(though I attached it to an email to this list). I only made it to
recover a corrupted repository, at the cost of invalidating all my
checksums.
Post by Stephan Beal
Post by Andy Goth
They're not fully featured; for instance neither does branches
i didn't even know RCS could do branches. My RCS phase was short-lived
before "upgrading" to CVS.
You're half right.

Yes, RCS does branches.

Branch numbers are sequences of an odd number of positive integers with
dots between, and revision numbers are branch numbers plus one more
integer. For instance, 9.4.3.5 is the fifth revision on branch 9.4.3,
which in turn is the third branch rooted at revision 9.4, which is the
fourth version on branch 9. See
http://www.gnu.org/software/rcs/manual/html_node/Concepts.html for a
more complicated explanation.

No, RCS users do not do branches.

http://en.wikipedia.org/wiki/Revision_Control_System#Mode_of_operation
says: "Although it provides branching for individual files, the version
syntax is cumbersome. Instead of using branches, many teams just use the
built-in locking mechanism and work on a single head branch."

CVS branches work the same as RCS branches.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Stephan Beal
2014-04-02 19:03:50 UTC
Permalink
Post by Andy Goth
I've actually already signed that form, once for Fossil and once for
SQLite, and I gave them to drh in person at the 18th Annual Tcl Conference
(2011) in Manassas. However, this was immediately after the AlcoBOF, so I
wouldn't be too surprised if it got lost. Richard, please confirm.
that's great news, Andy!

@Richard: if you'll confirm you've got him in your safe i'll get him set up.

@Andy: please send me your desired user name off-list and i'll get you set
up after confirmation from DRH.
Post by Andy Goth
then you can get commit access and add them to, e.g., tools/rcs2fossil.
Okay, though not sure what else I'd commit. Maybe I could have committed
a fix last night for the crash on CR/LF conversion, though I wouldn't trust
myself with trunk.
Having commit rights implies no particular future commitment, though we of
course do like to see familiar faces hacking on the code :).
Post by Andy Goth
Post by Andy Goth
Nope, sure don't. RCS sucks. But we have an old RCS repository with
lots of useful data in it, and now Fossil gives us a wonderful way to
organize and search it.
Okay, a love for your data is healthy and normal ;).
Post by Andy Goth
And the one that "imports from Fossil" actually imports from one Fossil
repository into another. Not generally useful, not worth publishing
(though I attached it to an email to this list). I only made it to recover
a corrupted repository, at the cost of invalidating all my checksums.
Just out of curiosity: what's the (or any) use case for doing so?
Post by Andy Goth
Branch numbers are sequences of an odd number of positive integers with
dots between, and revision numbers are branch numbers plus one more
integer. For instance, 9.4.3.5 is the fifth revision on branch 9.4.3,
which in turn is the third branch
i vaguely remember seeing that in other trees but never did it myself.
Post by Andy Goth
http://en.wikipedia.org/wiki/Revision_Control_System#Mode_of_operationsays: "Although it provides branching for individual files, the version
syntax is cumbersome. Instead of using branches, many teams just use the
built-in locking mechanism and work on a single head branch."
locks! We've had long discussions about those here in the past ;).
Post by Andy Goth
CVS branches work the same as RCS branches.
Though i used CVS heavily for 6 or 8 years, i don't remember ever trying to
branch with it.
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Richard Hipp
2014-04-02 19:11:28 UTC
Permalink
Post by Stephan Beal
Post by Andy Goth
I've actually already signed that form, once for Fossil and once for
SQLite, and I gave them to drh in person at the 18th Annual Tcl Conference
(2011) in Manassas. However, this was immediately after the AlcoBOF, so I
wouldn't be too surprised if it got lost. Richard, please confirm.
that's great news, Andy!
@Richard: if you'll confirm you've got him in your safe i'll get him set up.
Confirmed. Please do so. Tnx.
--
D. Richard Hipp
***@sqlite.org
Andy Goth
2014-04-02 19:16:27 UTC
Permalink
Post by Stephan Beal
We have an old RCS repository with lots of useful data in it.
Okay, a love for your data is healthy and normal ;).
I have no love for this data, and no one else does either, but we're
stuck with it. For instance, here's a check-in comment from 2008:

"help me i am dyuing. help me I an choking on c code."
Post by Stephan Beal
And the one that "imports from Fossil" actually imports from one
Fossil repository into another.
Just out of curiosity: what's the (or any) use case for doing so?
I had corrupted my repository such that some of the P cards named
nonexistent manifests. This broke trunk into multiple branches, plus
caused the Edit web UI to crash whenever in the vicinity of the
breakage. So I just checked each version of the code into a new
repository, preserving check-in comments.

I hope never to need this again.
Post by Stephan Beal
CVS branches work the same as RCS branches.
Though i used CVS heavily for 6 or 8 years, i don't remember ever
trying to branch with it.
Unsurprising.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Andy Goth
2014-04-02 19:22:33 UTC
Permalink
please send me your desired user name off-list and i'll get you set up
after confirmation from DRH.
I prefer "andy", though obviously that can cause confusion.

SELECT DISTINCT user FROM event ORDER BY user

reveals we already have an andybradford but also many first-name-only
users such as bob and eric and erik.

So "andy" should be okay.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Andy Goth
2014-04-02 19:23:39 UTC
Permalink
Post by Andy Goth
please send me your desired user name off-list and i'll get you set up
after confirmation from DRH.
I prefer "andy", though obviously that can cause confusion.
Damnit, I really meant to reply to you off-list. I apologize.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Stephan Beal
2014-04-02 19:25:02 UTC
Permalink
Post by Andy Goth
reveals we already have an andybradford but also many first-name-only
users such as bob and eric and erik.
So "andy" should be okay.
i'll give Andy Bradford a while to veto that or not before setting you up,
just to avoid any potential future confusion. It's almost bed time here,
but i'll check back tomorrow evening (CET) and set you up as "andy" or
whatever other name has come to this thread by then.

Welcome aboard!
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Stephan Beal
2014-04-03 13:10:30 UTC
Permalink
Hi, all,

i'd like to welcome Andy Goth to the development team, known as user "andy"
(i got an off-list OK from andybradford regarding the user name).

@AndyG: i'll send you your temporary password momentarily.

---------- Forwarded message ----------
From: Stephan Beal <***@googlemail.com>
Date: Wed, Apr 2, 2014 at 9:25 PM
Subject: Re: [fossil-users] RCS import
Post by Andy Goth
reveals we already have an andybradford but also many first-name-only
users such as bob and eric and erik.
So "andy" should be okay.
i'll give Andy Bradford a while to veto that or not before setting you up,
just to avoid any potential future confusion. It's almost bed time here,
but i'll check back tomorrow evening (CET) and set you up as "andy" or
whatever other name has come to this thread by then.

Welcome aboard!
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
--
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal
"Freedom is sloppy. But since tyranny's the only guaranteed byproduct of
those who insist on a perfect world, freedom will have to do." -- Bigby Wolf
Richard Hipp
2014-04-02 19:08:07 UTC
Permalink
Post by Andy Goth
Post by Stephan Beal
Post by Andy Goth
These scripts I've written, is there a public place to collect,
advertise, and improve them?
http://fossil-scm.org/index.html/doc/trunk/www/copyright-release.html
I've actually already signed that form, once for Fossil and once for
SQLite, and I gave them to drh in person at the 18th Annual Tcl Conference
(2011) in Manassas. However, this was immediately after the AlcoBOF, so I
wouldn't be too surprised if it got lost. Richard, please confirm.
Confirmed. Your copyright release was about 2/3rds of the way down the
1-inch thick stack of releases currently in the firesafe. But I found
it....
--
D. Richard Hipp
***@sqlite.org
David Given
2014-04-02 22:57:04 UTC
Permalink
On 4/2/14, 7:21 PM, Stephan Beal wrote:
[...]
Post by Stephan Beal
i didn't even know RCS could do branches. My RCS phase was short-lived
before "upgrading" to CVS.
As a totally off-topic comment, one of my other hats is the part-time
maintainer of the Amsterdam Compiler Kit, the ancient compiler toolchain
written by Andy Tanenbaum and Ceriel Jacobs that was made famous by Minix.

I recently migrated the repo from CVS to hg (sorry). This is the first
checkin:

https://sourceforge.net/p/tack/tack/ci/4bea19e501ed

That's actually *older* than CVS! It may even be older than RCS...
--
┌───  ───── http://www.cowlark.com ─────
│
│ "You cannot truly appreciate _Atlas Shrugged_ until you have read it
│ in the original Klingon." --- Sea Wasp on r.a.sf.w
Andy Goth
2014-04-02 23:09:56 UTC
Permalink
Post by David Given
I recently migrated the repo from CVS to hg (sorry). This is the first
https://sourceforge.net/p/tack/tack/ci/4bea19e501ed
That's actually *older* than CVS! It may even be older than RCS...
RCS dates back to 1982, two years before your initial check-in.
http://dl.acm.org/citation.cfm?id=807748
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
Andreas Kupries
2014-04-02 18:21:30 UTC
Permalink
Do you want dev access to

https://core.tcl.tk/akupries/fossil2git/index

?

I should rename that to 'fx' (Fossil eXtended).
Post by Andy Goth
Post by Stephan Beal
Post by Andy Goth
The attached script imports an RCS repository into Fossil.
i'm thrilled to see someone create a tool for exporting RCS "repos" to
fossil :).
These scripts I've written, is there a public place to collect,
advertise, and improve them? This script imports from RCS, and the one
I wrote before imports from Fossil (haha, that's really what it does).
They're not fully featured; for instance neither does branches. But
they meet my minimum requirements.
--
Andy Goth | <andrew.m.goth/at/gmail/dot/com>
_______________________________________________
fossil-users mailing list
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
--
Andreas Kupries
Senior Tcl Developer
Code to Cloud: Smarter, Safer, Faster(tm)
F: 778.786.1133
***@activestate.com
http://www.activestate.com
Learn about Stackato for Private PaaS: http://www.activestate.com/stackato

EuroTcl'2014, July 12-13, Munich, GER -- http://www.eurotcl.tcl3d.org/
21'st Tcl/Tk Conference: Nov 10-14, Portland, OR, USA --
http://www.tcl.tk/community/tcl2014/
Joerg Sonnenberger
2014-04-02 20:40:57 UTC
Permalink
Post by Andy Goth
The attached script imports an RCS repository into Fossil. It
doesn't support branching nor symbolic names, and it has a few
peculiarities designed to accommodate the RCS repository I just
processed.
You might consider
http://www.sonnenberger.org/2011/05/12/may-update-cvs2fossil/
too.

Joerg
Continue reading on narkive:
Loading...