
Hi Folks, As you probably know, there is a mirror of the GHC source tree in a darcs repository. (information about accessing the darcs repository is here: http://cvs.haskell.org/trac/ghc/wiki/GhcDarcs). The aim is to eventually switch over to using darcs for our revision control. The point of this message is to find out what constraints people have that will affect when we can throw the switch. It doesn't look like we'll be able to keep a CVS mirror going once we switch to darcs, so darcs will be the only way to get an up-to-date GHC source tree. How will it affect you? - If you just get the GHC sources from anonymous cvs, then you have to switch to getting sources using darcs. It's pretty simple. - If you are a developer, then you need to: (a) get sources from darcs, and (b) use 'darcs push' instead of 'cvs commit'. - You won't be able to browse the CVS repository via cvsweb any more. You can browse the contents of the darcs repository directly, and we hope to set up some kind of darcs-aware browsing too. We've switched some of our nightly builds over to using darcs, and it seems to be working nicely. darcs get --partial can actually get the sources quicker than anonymous CVS used to. Please let me know if the switchover is going to adversely affect your life, so that we can formulate a plan and timescale for switching over. Malcolm, Ross - since you both also use the CVS libraries tree, is it going to be possible for you to switch to using darcs to get the libraries? Any idea how long you'll need? Cheers, Simon

"Simon Marlow"
Malcolm, Ross - since you both also use the CVS libraries tree, is it going to be possible for you to switch to using darcs to get the libraries? Any idea how long you'll need?
I've been looking at the cvs configuration file CVSROOT/modules. I /think/ the procedure is something like changing this: nhc98src -d nhc98 nhc98 nhc98libraries -d nhc98/src/libraries fptools/libraries nhc98 -a nhc98src nhc98libraries to this: nhc98src -d nhc98 nhc98 nhc98libraries -o darcs get --reponame=nhc98/src/libraries \ http://cvs.haskell.org/darcs/libraries nhc98 -a nhc98src nhc98libraries and then a fresh cvs checkout of the nhc98 would be required in order to pick up the new location. Has anyone else tried this kind of tweak before and confirm that it is likely to work? If not, I might test it out with the smaller cpphs module initially. Regards, Malcolm

Am Freitag, 16. Dezember 2005 12:20 schrieb Malcolm Wallace:
I've been looking at the cvs configuration file CVSROOT/modules. I /think/ the procedure is something like changing this:
nhc98src -d nhc98 nhc98 nhc98libraries -d nhc98/src/libraries fptools/libraries nhc98 -a nhc98src nhc98libraries
to this:
nhc98src -d nhc98 nhc98 nhc98libraries -o darcs get --reponame=nhc98/src/libraries \ http://cvs.haskell.org/darcs/libraries nhc98 -a nhc98src nhc98libraries
and then a fresh cvs checkout of the nhc98 would be required in order to pick up the new location. Has anyone else tried this kind of tweak before and confirm that it is likely to work? If not, I might test it out with the smaller cpphs module initially.
As already mentioned on the cvs-all list this morning, this does not work... :-( Cheers, S.

Sven Panne
I've been looking at the cvs configuration file CVSROOT/modules. I /think/ the procedure is something like changing this:
nhc98src -d nhc98 nhc98 nhc98libraries -d nhc98/src/libraries fptools/libraries nhc98 -a nhc98src nhc98libraries
to this:
nhc98src -d nhc98 nhc98 nhc98libraries -o darcs get --reponame=nhc98/src/libraries \ http://cvs.haskell.org/darcs/libraries nhc98 -a nhc98src nhc98libraries
and then a fresh cvs checkout of the nhc98 would be required in order to pick up the new location.
As already mentioned on the cvs-all list this morning, this does not work... :-(
No? I've tested it (using nhc98cpphs rather than nhc98libraries), and it seems to work for me. What is the problem? (Of course, I'm not trying to do a two-way synchronisation, just grafting a darcs repo into the cvs tree.) Regards, Malcolm

On Fri, Dec 16, 2005 at 11:10:47AM -0000,
Simon Marlow
- You won't be able to browse the CVS repository via cvsweb any more. You can browse the contents of the darcs repository directly, and we > hope to set up some kind of darcs-aware browsing too.
darcsweb (http://users.auriga.wearlab.de/~alb/darcsweb/, online demos available at this address) is very nice and a serious contender for ViewVC. (It is written in Python, not in Haskell but, apart from that, it is nice.)

On Fri, Dec 16, 2005 at 11:10:47AM -0000, Simon Marlow wrote:
As you probably know, there is a mirror of the GHC source tree in a darcs repository. (information about accessing the darcs repository is here: http://cvs.haskell.org/trac/ghc/wiki/GhcDarcs).
The aim is to eventually switch over to using darcs for our revision control. The point of this message is to find out what constraints people have that will affect when we can throw the switch.
It doesn't look like we'll be able to keep a CVS mirror going once we switch to darcs, so darcs will be the only way to get an up-to-date GHC source tree.
[...]
Malcolm, Ross - since you both also use the CVS libraries tree, is it going to be possible for you to switch to using darcs to get the libraries? Any idea how long you'll need?
No problem for me if you switch over at any time. But how about having a separate repository for each library package?

On 2005-12-19, Malcolm Wallace
Ross Paterson
writes: No problem for me if you switch over at any time. But how about having a separate repository for each library package?
Seconded.
Simon, any thoughts? We could go about this one of two ways: 1) Just make branches of the current libraries repo, and in each one, remove the files that aren't relevant for a particular package 2) Re-convert the CVS files from scratch I would prefer #1 by far ;-) -- John

On Tue, Dec 20, 2005 at 03:50:02PM +0000, John Goerzen wrote:
On 2005-12-19, Malcolm Wallace
wrote: Ross Paterson
writes: But how about having a separate repository for each library package?
Seconded.
Simon, any thoughts?
Also, if the library packages are separate, the rest of the stuff in the libraries directory would be part of GHC's build system (nhc98 too at the moment, but it sounds like Malcolm will be changing that) so might as well be part of the ghc repository.

"Simon Marlow"
The aim is to eventually switch over to using darcs for our revision control. The point of this message is to find out what constraints people have that will affect when we can throw the switch.
One thing it occurs to me to ask is what will be happening to CVS commit messages, once the switchover to darcs happens? I have investigated this briefly, and it seems that darcs does not yet directly support mailing out commit messages from a repository. There is a wrapper script at darcs get http://www.cse.unsw.edu.au/~dons/code/darcs-mail but this requires administration privileges on the hosting machine, since you need to rename the darcs binary proper, then install the wrapper in its place. Also, it is unclear to me whether this wrapper works equally well in all situations, e.g. with 'darcs apply' on the hosting machine, 'darcs push' from a separate repository on the same host, or 'darcs push' from a remote machine with ssh. Anyone sufficiently familiar with this to shed any light? Regards, Malcolm

Malcolm Wallace
One thing it occurs to me to ask is what will be happening to CVS commit messages, once the switchover to darcs happens?
rss2email is one solution. It's a python script that runs from cron, so you won't have to worry about fiddling with darcs posthooks or anything. -- Shae Matijs Erisson - http://www.ScannedInAvian.com/ - Sockmonster once said: You could switch out the unicycles for badgers, and the game would be the same.

can't we just make 'darcs send' send the patches to a public list so people can see them that way as they are sent in. John -- John Meacham - ⑆repetae.net⑆john⑈

john:
can't we just make 'darcs send' send the patches to a public list so people can see them that way as they are sent in.
I think the problem would be that we still want multiple developers to darcs push over ssh, don't we? Rather than darcs sending patches to a list, for a mainatiner to pick up. -- Don

On Wed, Dec 21, 2005 at 10:56:14AM +1100, Donald Bruce Stewart wrote:
john:
can't we just make 'darcs send' send the patches to a public list so people can see them that way as they are sent in.
I think the problem would be that we still want multiple developers to darcs push over ssh, don't we? Rather than darcs sending patches to a list, for a mainatiner to pick up.
the way darcs itself works is that everyone uses darcs send, even david and his script picks up patches signed by him and automatically applies them. In any case, having darcs send go to a public list is really nice. another possibility if you don't want to mess with gpg is that everyone darcs send's and then the patches are 'pushed' by a main developer off the list (which sometimes might be their own patches). I have attached a handy little script I have bound to 'A'pply in mutt which facilitates this. John -- John Meacham - ⑆repetae.net⑆john⑈

Malcolm.Wallace:
"Simon Marlow"
writes: The aim is to eventually switch over to using darcs for our revision control. The point of this message is to find out what constraints people have that will affect when we can throw the switch.
One thing it occurs to me to ask is what will be happening to CVS commit messages, once the switchover to darcs happens?
I have investigated this briefly, and it seems that darcs does not yet directly support mailing out commit messages from a repository. There is a wrapper script at darcs get http://www.cse.unsw.edu.au/~dons/code/darcs-mail but this requires administration privileges on the hosting machine, since you need to rename the darcs binary proper, then install the wrapper in its place. Also, it is unclear to me whether this wrapper works equally well in all situations, e.g. with 'darcs apply' on the hosting machine, 'darcs push' from a separate repository on the same host, or 'darcs push' from a remote machine with ssh.
Anyone sufficiently familiar with this to shed any light?
darcs-mail mails changes summaries when `apply --all' is on the cmd line -- which is the case when pushing over ssh. So it works quite nicely for the situation where you push over ssh to a central repository. A nice summary is then sent out to each address in _darcs/prefs/mailinglist. We've used this internally at UNSW for about 6 months now, and has worked quite well. I originally wrote this script as a temporary fix until darcs supported post-apply hooks. If it does now, perhaps there's no need for the wrapper, and instead a mail program can be invoked by darcs itself as a hook (i.e. just the core of darcs-mail can be `hooked'). So, in summary, if darcs post-apply hooks now work, we could strip down darcs-mail for our purposes, otherwise we could use darcs-mail, (though it only works over darcs push ssh atm). -- Don

dons@cse.unsw.edu.au (Donald Bruce Stewart) writes:
One thing it occurs to me to ask is what will be happening to CVS commit messages, once the switchover to darcs happens?
I originally wrote this script as a temporary fix until darcs supported post-apply hooks. If it does now, perhaps there's no need for the wrapper, and instead a mail program can be invoked by darcs itself as a hook (i.e. just the core of darcs-mail can be `hooked').
Ah, yes I have just upgraded to darcs 1.05 (from 1.03), and there are posthooks available for every command now. However, there is one wrinkle that means we can't use a stripped-down version of your darcs-mail script directly. The command invoked by the posthook does not, AFAICS, get to look at the patch bundle. This means the posthook can only report a single patch per bundle, something like this: darcs changes -s --last=1 | mail -s "darcs commit" `cat mailinglist` where previously, the --last argument could in fact determine a fully accurate count of patches contained in the bundle. I'm not sure from the documentation whether multiple patches are normally submitted simultaneously from one repository to another, but I suspect the answer is yes. Any ideas? Regards, Malcolm

On 2005-12-21, Malcolm Wallace
Ah, yes I have just upgraded to darcs 1.05 (from 1.03), and there are posthooks available for every command now. However, there is
FWIW, it is not the posthook but the cc pref for apply that I'm looking at. You can set it so that apply itself generates a message when something is applied. -- John

On 2005-12-20, Malcolm Wallace
One thing it occurs to me to ask is what will be happening to CVS commit messages, once the switchover to darcs happens?
I have already investigated it, and the short answer is that darcs 1.0.4 now has a way to make darcs apply automatically send these messages. When you darcs push to a remote repository, darcs apply is effectively run on that repo. I've tested this and it works. -- John
participants (9)
-
dons@cse.unsw.edu.au
-
John Goerzen
-
John Meacham
-
Malcolm Wallace
-
Ross Paterson
-
Shae Matijs Erisson
-
Simon Marlow
-
Stephane Bortzmeyer
-
Sven Panne