Debian revision control systems IRC discussion

(22:01:19) blahdeblah: Q for cvs-buildpackage users: what is the correct/recommended way to build a native package (i.e. where the upstream version source is in the same CVS tree)?
(22:05:11) blahdeblah: I've experimented with debian/ being tagged with debian_version_X_Y_Z-A and the remaining source being tagged as upstream_version_X_Y_Z. This results in a non-buildable package when exported by cvs-buildpackage, whereas if i just cvs export all the files, it works fine. Do i need to set up rules more like an upstream package than a native package?
(22:08:43) blahdeblah: Is everyone scared away by the mention of cvs-buildpackage, or am i just too verbose?
(22:09:29) womble: blahdeblah: If you wanted a million answers, you need to ask about {tla,arch}-buildpackage...
(22:10:53) blahdeblah: womble: :-) What is the difference?
(22:11:56) womble: cvs-buildpackage builds packages from files stored in a CVS repo, {arch,tla}-buildpackage build packages from files stored in an Arch archive.
(22:12:50) blahdeblah: Is Arch an alternative revision control system to CVS?
(22:13:16) Lo-lan-do: Yes.
(22:14:16) blahdeblah: L-l-d: which package is it in?
(22:16:12) womble: blahdeblah: tla, or you can pick up baz (an improved-UI version of tla) from bazaar.canonical.com
(22:18:32) blahdeblah: womble/Lo-lan-do: is any particular one of cvs, svn, tla, and baz preferred for Debian development?
(22:19:13) Lo-lan-do: blahdeblah: I'd recommend sticking with whatever upstream prefers and uses, unless you really can't live with it.
(22:19:30) Lo-lan-do: And if there's no upstream... you're free, pick the one you like most :-)
(22:19:57) stockholm: and if upsteam does not use version control?
(22:20:04) blahdeblah: I am upstream. :-) I've only used CVS in the past, but i'm happy to learn another if it's going to make it easier to work with others. What are the main Debian package repositories stored in?
(22:20:15) stockholm: svn
(22:20:20) Lo-lan-do: stockholm: Then you're totally forbidden to use one either!
(22:20:27) blahdeblah: :-)
(22:20:32) stockholm: Lo-lan-do: dang. i knew that!
(22:20:33) Lo-lan-do: cvs/svn/tla
(22:20:44) idnar: various DDs use cvs, svn, arch, darcs, ...
(22:20:49) womble: blahdeblah: There is no *one* preferred format. A lot of people are going with svn because it's "a better CVS", and CVS is really starting to show it's age
(22:21:14) womble: But I'm an Arch person because I figured "why just go with a better CVS when you can upgrade to the Space Shuttle"
(22:21:33) blahdeblah: I've heard that svn is very familiar to those used to cvs - true?
(22:21:40) womble: Like the space shuttle, tla has a million buttons and pushing the wrong one can get you into trouble, but for raw power it can't be beat
(22:21:46) Lo-lan-do: blahdeblah: True.
(22:22:06) Lo-lan-do: blahdeblah: Except for branching/merging.
(22:22:07) dajobe: yeah svn provides the same power of repository corruption you are used to
(22:22:13) Mithrandir: womble: while baz is more along the lines of spaceshipone -- fast, cheap and reliable
(22:22:21) blahdeblah: womble: I'm talking about fairly simple requirements - even cvs has all the power i need.
(22:22:30) Lo-lan-do: Mithrandir: ...and slightly incompatible :-)
(22:22:40) womble: blahdeblah: That's what I thought until I used a different RC system.
(22:22:46) blahdeblah: L-l-d: what's different about branching/merging in svn?
(22:22:51) Mithrandir: Lo-lan-do: yeah, true
(22:23:12) Lo-lan-do: blahdeblah: It's even worse at merging stuff than CVS.
(22:23:12) womble: I couldn't believe how much easier it is to program with a *real* RCS backing your plays
(22:23:27) Mithrandir: blahdeblah: svn doesn't have a concept of branch, really. You emulate it by using different paths for branchees
(22:23:29) ***Lo-lan-do worships "tla undo"
(22:23:32) womble: Lo-lan-do: You're kidding? I couldn't have imagined it would have been possible...
(22:23:45) Lo-lan-do: womble: What Mithrandir said.
(22:23:51) womble: CVS branching/merging is pretty horrible...
(22:23:58) womble: Aiee!
(22:24:01) blahdeblah: L-l-d: again, my requirements are fairly simple, and i have always found cvs merges to be adequate.
(22:24:19) idnar: it's really painful having parallel lines of development in svn
(22:24:34) Mithrandir: that's painless in arch
(22:24:41) idnar: really *REALLY* painful
(22:24:45) Lo-lan-do: Yeah, but at least you can say "merge the diffs between foo_-last_merge and foo-branch into my workdir"
(22:24:48) blahdeblah: idnar/Mithrandir: that sounds like a reason to go for tla over svn...
(22:24:49) idnar: (guess who's stuck with svn at work for the moment :P)
(22:24:59) womble: blahdeblah: If CVS does it for you, then stick with CVS. The repayment in improved productivity will take a while to amortize out the learning cost of switching.
(22:25:18) Mithrandir: blahdeblah: svn and arch do different stuff. arch is less useful for "general" revision control, but better for development, imho
(22:25:52) ***Lo-lan-do has Wordpress's upstream in a tla branch, then a "fixes" branch following it plus local fixes, then a local branch following "fixes" plus locam customisations
(22:25:52) womble: I, on the other hand, will continue to enjoy the love of distributed development, with real branching and merging, and the ability to juggle 18 lines of development concurrently without train wrecks.
(22:25:57) blahdeblah: Mith: what do you consider to be the difference between "general" RC and development RC?
(22:26:50) Mithrandir: blahdeblah: arch would be painful for ~ or /etc, I think.
(22:27:03) asuffield: "general" revision control is mindlessly applying it in scenarios where it makes no sense, like putting your cat in an archive
(22:27:04) Lo-lan-do: One dir full of scripts vs. a deep hierarchy of dirs and files moving around, being added then deleted as time passes. And branches.
(22:27:06) blahdeblah: Mith: i do have a few of those... :-)
(22:27:12) Mithrandir: asuffield: that too
(22:27:18) asuffield: Mithrandir: somebody does keep big chunks of their ~ in arch
(22:27:23) Mithrandir: asuffield: revision control as a distribution mechanism.
(22:27:48) Mithrandir: asuffield: I'm not saying it can't be done, I'm saying it would be more painful than with svn. At least, if I were to work the way I do.
(22:28:09) Mithrandir: what do you have that is better, really?
(22:28:15) idnar: RC of binaries is a pain
(22:28:18) Mithrandir: (for stuff like my dotfiles)
(22:28:20) blahdeblah: OK - here's one: keeping apache configs up-to-date with whatever Debian or SuSE release plus allowing local customisations.
(22:28:28) blahdeblah: Which is the best RCS?
(22:28:55) asuffield: idnar: that's almost certainly "distribution", not "revision control". do it with apt
(22:29:28) idnar: asuffield: and if the binaries need to be kept in sync with various portions of the code?
(22:29:37) blahdeblah: BTW, i'm not planning on doing any distribution with any RCS, just using it to store source and parts of ~
(22:30:23) Lo-lan-do: blahdeblah: Stick with CVS, I'd say.
(22:30:32) blahdeblah: womble: ping; which RCS are you referring to as having the abilities you claim?
(22:30:57) Lo-lan-do: blahdeblah: I bet he's referring to tla.
(22:31:45) blahdeblah: L-l-d: OK - sounds worth checking out. Any recommended resources?
(22:32:26) Lo-lan-do: blahdeblah: Really, if you just want to keep a few config files versioned, there's no need to go learn a new RC system.
(22:32:49) womble: blahdeblah: tla, indeed.
(22:33:14) Lo-lan-do: If you still want to learn tla, well, there's http://wiki.gnuarch.org/ but I find it frustrating. Maybe just because it looks ugly.
(22:33:38) blahdeblah: L-l-d: I don't want to just keep config files, i want to store source code for packages that i need to make available on both Debian and SuSE systems.
(22:34:38) Lo-lan-do: blahdeblah: Ah. Then tla would be interesting, I suppose. Prepare for the long learning period...
(22:34:31) blahdeblah: L-l-d: http://wiki.gnuarch.org/: prettier than a lot i've seen. :-)
(22:35:44) blahdeblah: http://wiki.gnuarch.org/ gives a good reason for using Svn: "a developer experienced on CVS can be using Svn for basic operations in a matter of minutes."
(22:36:31) idnar: darcs doesn't have as steep a learning curve as tla (at least, that was my experience)
(22:37:44) blahdeblah: idnar: darcs?
(22:38:39) idnar: blahdeblah: David's Advanced Revision Control System
(22:39:12) idnar: blahdeblah: it's another decentralized RCS (like arch, in a broad sense)
(22:40:02) blahdeblah: idnar: great - one more to consider! :-\
(22:42:51) blahdeblah: More questions: 1. bulk imports from CVS & RCS: which is best (i.e. easy/smooth)? 2. Keeping up-to-date with a vendor repos using CVS - is this possible in svn or tla?
(22:43:14) sachac: blahdeblah: There's a TLA archive tracking Emacs CVS, so it's not impossible.
(22:43:24) Mithrandir: blahdeblah: cscvs or cvs2svn
(22:46:14) Lo-lan-do: blahdeblah: And if you want yet one more, try monotone, too :-)
(22:46:43) blahdeblah: Mith: Groovy - thanks. Do you have to be a python hacker to make good sense of arch? python to me is like COBOL with a new haircut - ugh! :-)
(22:47:02) Lo-lan-do: Arch is written in C, and doesn't use Python at all as far as I know.
(22:47:18) blahdeblah: Sorry - must be just cscvs that's written in python.
(22:48:35) Mithrandir: blahdeblah: no, I don't think so. You have python bindings for arch, though
(22:55:00) womble: blahdeblah: You can add aegis to your RC collection for evaluation, too.
(22:55:53) Lo-lan-do: Oh, and please post your comparisons and conclusions somewhere public :-)
(23:05:52) blahdeblah: L-l-d: Will try to, although i can't promise a serious comparison. I've just been reading the anti-svn stuff from tla and BitKeeper, and the svn responses, and i think i'll probably go for svn, since it's going to have a shallower learning curve.