RFC: migrating to git

2011-01-10 Thread Simon Marlow
It's time to consider again whether we should migrate GHC development 
from darcs to (probably) git.


From our perspective at GHC HQ, the biggest problem that we would hope 
to solve by switching is that darcs makes branching and merging very 
difficult for us.  We have a few branches of HEAD that are very painful 
to keep merged with HEAD, and we would almost certainly have more 
branches if the overhead were lower.  In some sense the overhead is 
self-inflicted because we have the no-conflict policy in the mainline 
repository, but that is to avoid problems with darcs' merging algorithms 
(both performance and correctness).  We are still using darcs v1 patches 
rather than v2, but there are known problems with v2 which are 
preventing us from upgrading.


The darcs team have been making great strides with performance, but 
conflict handling remains a serious problem.  The darcs roadmap doesn't 
show this being fixed in the near future


  http://wiki.darcs.net/Roadmap

Rebase support is coming, and it does work, though the workflow is a bit 
laborious.


Besides the branching/merging/conflict issue, switching to git would 
give us plenty of side benefits, notably via access to a wealth of tool 
support.  Making contribution easy is important to us too, and there are 
a lot of people using git.


The cost of switching is quite high, which is one reason we decided to 
stay with darcs last time.  We have multiple repos that need to be 
converted, and for some of them, where the repo is being shared with 
other projects, we may have to mirror rather than convert in place. 
We're prepared to put in the effort if the gains would be worthwhile 
though (offers of help are more than welcome!).



We're intrested in opinions from both active and potential GHC 
developers/contributors.  Let us know what you think - would this make 
life harder or easier for you?  Would it make you less likely or more 
likely to contribute?


Cheers,
Simon

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Max Bolingbroke
On 10 January 2011 11:19, Simon Marlow marlo...@gmail.com wrote:
 Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

Well, as a sometime-contributor I would certainly be happier hacking
on GHC if it were git based. When working on a GHC branch, it is
rather irritating to spend time work around the inevitable Darcs bugs
rather than hacking on the code.

However, I remember the last time this came up there were some issues
that might make migration painful. From the top of my head:

1) Some people expressed concern that they would have to use two
revision control systems to work on GHC, because not all GHC
dependencies would be git-based.

2) There was also concern that Git isn't so great on Windows. I have
heard that this is less of an issue now, but I never personally
suffered from any problems, so can't be sure. (FWIW I used Git on
Windows industrially ~1 year ago for 3 months and didn't have
problems, though the people around me occasionally had issues with
e.g. case insensitivity causing obscure error messages).

3) The git transition has the potential to make Ian's workflow (i.e.
maintaining branches for old GHC releases) harder.

AFAIK currently Ian just darcs pulls a particular patch from GHC
HEAD into e.g. the GHC 7 branch. Darcs automatically works out which
of the earlier patches are dependent on that patch and deals with
pulling them in as well (if they are not already present).

If GHC HQ transitioned to Git but committed all patches to master then
Ian's job might be significantly harder because he would have to use
git cherry-pick to pick out any bug fix patches that should be
merged back to e.g. GHC 7. Unfortunately, Git does not provide any
mechanism for automatically working out which earlier patches commits
on the cherry-picked commit, so this will fail quite often. Ian will
then have to manually identify the dependents.

To make Ian's life easier GHC HQ could adopt a new workflow. For
example, bug fixers could fix their bugs on *new* branches (one peg
bug) which start from the last major GHC release (right now, GHC 7).
After fixing the bug on that branch, they can then merge the branch
into master. Now when Ian merges a bugfix to a GHC 7 patchlevel
release he just needs to merge that bug fixing branch into the ongoing
GHC 7 branch.

Naturally other workflows are possible and I'm sure other list members
will chime in with their own favourites :-)

Has GHC HQ thought about these workflow issues? Are you happy with any
changes that might be required to your workflows?

Ultimately I'm quite concerned with keeping GHC HQ happy (as you guys
do the lions share of the work!). I feel we should only make the
switch if the most frequent committers (i.e. Simon, Simon and Ian) are
*totally happy* with it and any associated workflow changes that may
be required.

Cheers,
Max

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Simon Marlow

On 10/01/2011 13:02, Max Bolingbroke wrote:

On 10 January 2011 11:19, Simon Marlowmarlo...@gmail.com  wrote:

Let us know what you think - would this make life
harder or easier for you?  Would it make you less likely or more likely to
contribute?


Well, as a sometime-contributor I would certainly be happier hacking
on GHC if it were git based. When working on a GHC branch, it is
rather irritating to spend time work around the inevitable Darcs bugs
rather than hacking on the code.

However, I remember the last time this came up there were some issues
that might make migration painful. From the top of my head:

1) Some people expressed concern that they would have to use two
revision control systems to work on GHC, because not all GHC
dependencies would be git-based.


It would be a prerequisite to switching that a GHC developer only has to 
use one VCS.  So we either migrate dependencies to git, or mirror them 
in GHC-specific git branches.



2) There was also concern that Git isn't so great on Windows. I have
heard that this is less of an issue now, but I never personally
suffered from any problems, so can't be sure. (FWIW I used Git on
Windows industrially ~1 year ago for 3 months and didn't have
problems, though the people around me occasionally had issues with
e.g. case insensitivity causing obscure error messages).


Again, it would be a prerequisite that all our workflows work on Windows 
too.  We'd have to do some research to check for problems.



3) The git transition has the potential to make Ian's workflow (i.e.
maintaining branches for old GHC releases) harder.

AFAIK currently Ian just darcs pulls a particular patch from GHC
HEAD into e.g. the GHC 7 branch. Darcs automatically works out which
of the earlier patches are dependent on that patch and deals with
pulling them in as well (if they are not already present).

If GHC HQ transitioned to Git but committed all patches to master then
Ian's job might be significantly harder because he would have to use
git cherry-pick to pick out any bug fix patches that should be
merged back to e.g. GHC 7. Unfortunately, Git does not provide any
mechanism for automatically working out which earlier patches commits
on the cherry-picked commit, so this will fail quite often. Ian will
then have to manually identify the dependents.

To make Ian's life easier GHC HQ could adopt a new workflow. For
example, bug fixers could fix their bugs on *new* branches (one peg
bug) which start from the last major GHC release (right now, GHC 7).
After fixing the bug on that branch, they can then merge the branch
into master. Now when Ian merges a bugfix to a GHC 7 patchlevel
release he just needs to merge that bug fixing branch into the ongoing
GHC 7 branch.

Naturally other workflows are possible and I'm sure other list members
will chime in with their own favourites :-)


I don't think the dependencies get very deep in most cases, and my 
impression is that we often don't want to pull the dependencies anyway, 
so darcs forces us to merge the patch manually (Ian would be able to say 
for sure how often this happens).


However, if it turned out that we had to change this workflow it 
wouldn't be the end of the world.  Fixing bugs on the stable branch 
rather than HEAD would be a slight inconvenience, but is arguably the 
right thing anyway.



Has GHC HQ thought about these workflow issues? Are you happy with any
changes that might be required to your workflows?

Ultimately I'm quite concerned with keeping GHC HQ happy (as you guys
do the lions share of the work!). I feel we should only make the
switch if the most frequent committers (i.e. Simon, Simon and Ian) are
*totally happy* with it and any associated workflow changes that may
be required.


Speaking for myself, I tend slightly towards making the switch, becuase 
I'm keen to make branching less painful.  However, I think if it were 
just the three of us, there probably wouldn't be enough motivation to 
overcome the cost of switching, but if there is enough interest from the 
rest of the community that might just swing it.


Cheers,
Simon

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Pavel Perikov
Please please consider Mercurial if migration from darcs is inevitable :)

P.



___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Johan Tibell
On Mon, Jan 10, 2011 at 12:19 PM, Simon Marlow marlo...@gmail.com wrote:
 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

I would also be happier hacking on GHC if it was git based. My
experience of integrating the new I/O manager wasn't very pleasant,
due to having to re-record patches and jumping through other hoops. We
also lost all the project history [1]. I also find git's tools for
working with project history (e.g. using the PickAxe feature and
better blame support) better.

Being able to keep a first class copy of the GHC repo on GitHub also
appeals a lot to me. I keep all my personal projects on GitHub and in
my experience it has led to more contributions. While we had a Git
clone of the GHC repo on GitHub in the past, it was a second class
citizen and since you could actually make your changes against that
GitHub repo, I never bothered using it.

Cheers,
Johan

1. While we managed to convert the git commits to Darcs patches, all
the patches needed to be rerecorded as one big patch before
submitting. I'm not entirely certain why, perhaps Simon M could
elaborate.

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Johan Tibell
On Mon, Jan 10, 2011 at 2:02 PM, Max Bolingbroke
batterseapo...@hotmail.com wrote:
 Naturally other workflows are possible and I'm sure other list members
 will chime in with their own favourites :-)

Here's the flow I use:

http://nvie.com/posts/a-successful-git-branching-model/

with the exception of having the master branch be the development
branch, which is what most Git users expect.

 Ultimately I'm quite concerned with keeping GHC HQ happy (as you guys
 do the lions share of the work!). I feel we should only make the
 switch if the most frequent committers (i.e. Simon, Simon and Ian) are
 *totally happy* with it and any associated workflow changes that may
 be required.

I agree with this sentiment. If GHC HQ believes Git will make their
job harder, I'm not in favor of a switch. (From personal experience I
think it will make it easier after an initial short learning curve,
but I cannot know this for certain of course.)

Johan

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Johan Tibell
On Mon, Jan 10, 2011 at 2:34 PM, Pavel Perikov peri...@gmail.com wrote:
 Please please consider Mercurial if migration from darcs is inevitable :)

While Mercurial is a fine choice, I think there are more Haskellers
that use Git than Mercurial. Probably because GitHub is such an
awesome service.

Johan

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Pavel Perikov

On 10.01.2011, at 16:40, Johan Tibell wrote:
 While Mercurial is a fine choice, I think there are more Haskellers
 that use Git than Mercurial. Probably because GitHub is such an
 awesome service.

Interesting. It will be great to see any numbers (really, just curious).

bitbucket seems to be ok too :) For me who got used to darcs Mercurial just 
seemed so much leaner, simpler etc.. And it presumably have better support on 
Windows btw (I personally only use Macs though).
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Lars Viklund
On Mon, Jan 10, 2011 at 01:27:17PM +, Simon Marlow wrote:
 On 10/01/2011 13:02, Max Bolingbroke wrote:
 2) There was also concern that Git isn't so great on Windows. I have
 heard that this is less of an issue now, but I never personally
 suffered from any problems, so can't be sure. (FWIW I used Git on
 Windows industrially ~1 year ago for 3 months and didn't have
 problems, though the people around me occasionally had issues with
 e.g. case insensitivity causing obscure error messages).

 Again, it would be a prerequisite that all our workflows work on Windows  
 too.  We'd have to do some research to check for problems.

The environment provided by msysgit is reasonably usable, and
performance hasn't been much trouble for me personally.

The binaries from it can also be used in syntevo's SmartGit product,
which has a free license for non-commercial purposes, so if the gitk
tools of msysgit are considered inadequate, SmartGit tends to get the
job done.

The only problem I've had with msysgit is that it has its own set of
compilers and msys tools, which might conflict with the existing
toolchains used with GHC, something which I'm unsure if it's solvable as
Git has a horrible tendency to rely on having shell tools to do its ill
deeds.

As for whether to change or not, I'm neutral as I'm not a contributor
nor have any plans to be.

-- 
Lars Viklund | z...@acc.umu.se

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Daniel Peebles
I fully support this (especially if it lived on github), but we should
probably sort the top contributors to GHC in the past year or so and
consider their opinions on the matter in that order :) I certainly would not
be on that list. A git(hub)-based workflow would however facilitate any
minor contributions I might make (and I'd imagine those of many others).

Dan

On Mon, Jan 10, 2011 at 6:19 AM, Simon Marlow marlo...@gmail.com wrote:

 It's time to consider again whether we should migrate GHC development from
 darcs to (probably) git.

 From our perspective at GHC HQ, the biggest problem that we would hope to
 solve by switching is that darcs makes branching and merging very difficult
 for us.  We have a few branches of HEAD that are very painful to keep merged
 with HEAD, and we would almost certainly have more branches if the overhead
 were lower.  In some sense the overhead is self-inflicted because we have
 the no-conflict policy in the mainline repository, but that is to avoid
 problems with darcs' merging algorithms (both performance and correctness).
  We are still using darcs v1 patches rather than v2, but there are known
 problems with v2 which are preventing us from upgrading.

 The darcs team have been making great strides with performance, but
 conflict handling remains a serious problem.  The darcs roadmap doesn't show
 this being fixed in the near future

  http://wiki.darcs.net/Roadmap

 Rebase support is coming, and it does work, though the workflow is a bit
 laborious.

 Besides the branching/merging/conflict issue, switching to git would give
 us plenty of side benefits, notably via access to a wealth of tool support.
  Making contribution easy is important to us too, and there are a lot of
 people using git.

 The cost of switching is quite high, which is one reason we decided to stay
 with darcs last time.  We have multiple repos that need to be converted, and
 for some of them, where the repo is being shared with other projects, we may
 have to mirror rather than convert in place. We're prepared to put in the
 effort if the gains would be worthwhile though (offers of help are more than
 welcome!).


 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

 Cheers,
Simon

 ___
 Cvs-ghc mailing list
 cvs-...@haskell.org
 http://www.haskell.org/mailman/listinfo/cvs-ghc

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread David Brown
On Mon, Jan 10 2011, Max Bolingbroke wrote:

 2) There was also concern that Git isn't so great on Windows. I have
 heard that this is less of an issue now, but I never personally
 suffered from any problems, so can't be sure. (FWIW I used Git on
 Windows industrially ~1 year ago for 3 months and didn't have
 problems, though the people around me occasionally had issues with
 e.g. case insensitivity causing obscure error messages).

As a linux kernel subsystem maintainer (but probably not a GHC
developer), I would probably still recommend git.  Mercurial and git are
getting fairly similar feature wise.  I find git easier to work with
lots of branches.

As far as Windows performance, it is poorer than when using it on Linux,
often vastly, but on Windows it tends to only perform about as slow as
other VCSes.  It's more the comparison against the Linux version that is
heavily tuned for the large history and numerous branches of the kernel.

David

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Johan Tibell
On Mon, Jan 10, 2011 at 2:43 PM, Pavel Perikov peri...@gmail.com wrote:

 On 10.01.2011, at 16:40, Johan Tibell wrote:
 While Mercurial is a fine choice, I think there are more Haskellers
 that use Git than Mercurial. Probably because GitHub is such an
 awesome service.

 Interesting. It will be great to see any numbers (really, just curious).

No real numbers. I've just observed what other Haskellers talk about
and where I usually find projects (when they are not in Darcs). We
could probably pull the numbers of Hackage.

Johan

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Pavel Perikov

On 10.01.2011, at 18:59, Johan Tibell wrote:
  I've just observed what other Haskellers talk about
 and where I usually find projects (when they are not in Darcs). We
 could probably pull the numbers of Hackage.


Probably most valuable are the opinions of GHC development team of course :) 
Git really seem to be more popular, Mercurial just seem more streamlined to me 
:)

P.


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Heiko Studt

Am 10.01.2011 14:02, schrieb Max Bolingbroke:


2) There was also concern that Git isn't so great on Windows. I have
heard that this is less of an issue now, but I never personally
suffered from any problems, so can't be sure. (FWIW I used Git on
Windows industrially ~1 year ago for 3 months and didn't have
problems, though the people around me occasionally had issues with
e.g. case insensitivity causing obscure error messages).


We are using GIT for a (way smaller) C++ - project here, which is mostly 
Linux-based. Two of the developers (including me) were using Windows and 
VS for our part, while building the whole stuff (using the same sources) 
on Linux. The files were mounted via Samba.


The main issue are the line endings, which are to be set correctly. This 
is a mess in TortoiseGIT, though the problem merely was that we were 
using the source on both systems.


However, we do not exploit the full spectrum of tools and possibilities 
of GIT. Actually, I am unaware of many of its features...


I am not contributing on GHC and am not going to.



MFG
Heiko

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Thomas Schilling
I'd be for a move, but haven't contributed much lately.  I use Git for
all my personal projects, so I consider Git to be useful.  I
personally find sending patches via Git to be harder than with Darcs,
but if we use Github the pull-request-based model should work well.

I used Git on Windows two years ago and didn't have any problems (the
case sensitive file name issue has a well-documented setting to avoid
issues).  I think I used msysGit and used msys to build GHC, so those
should work well together.  (Granted, though, I used Git only for a
small code base at the time.)

We'd probably have to adopt the workflow that Johan linked to
(separate branch for every larger change, merge with --no-ff) but that
might actually improve things (e.g., unmerging a branch if necessary).

The important issues, mentioned by Max, remain and I agree that GHC HQ
should have the last decision on these.

On 10 January 2011 11:19, Simon Marlow marlo...@gmail.com wrote:
 It's time to consider again whether we should migrate GHC development from
 darcs to (probably) git.

 From our perspective at GHC HQ, the biggest problem that we would hope to
 solve by switching is that darcs makes branching and merging very difficult
 for us.  We have a few branches of HEAD that are very painful to keep merged
 with HEAD, and we would almost certainly have more branches if the overhead
 were lower.  In some sense the overhead is self-inflicted because we have
 the no-conflict policy in the mainline repository, but that is to avoid
 problems with darcs' merging algorithms (both performance and correctness).
  We are still using darcs v1 patches rather than v2, but there are known
 problems with v2 which are preventing us from upgrading.

 The darcs team have been making great strides with performance, but conflict
 handling remains a serious problem.  The darcs roadmap doesn't show this
 being fixed in the near future

  http://wiki.darcs.net/Roadmap

 Rebase support is coming, and it does work, though the workflow is a bit
 laborious.

 Besides the branching/merging/conflict issue, switching to git would give us
 plenty of side benefits, notably via access to a wealth of tool support.
  Making contribution easy is important to us too, and there are a lot of
 people using git.

 The cost of switching is quite high, which is one reason we decided to stay
 with darcs last time.  We have multiple repos that need to be converted, and
 for some of them, where the repo is being shared with other projects, we may
 have to mirror rather than convert in place. We're prepared to put in the
 effort if the gains would be worthwhile though (offers of help are more than
 welcome!).


 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

 Cheers,
        Simon

 ___
 Cvs-ghc mailing list
 cvs-...@haskell.org
 http://www.haskell.org/mailman/listinfo/cvs-ghc




-- 
Push the envelope. Watch it bend.

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Pavel Perikov

On 10.01.2011, at 19:29, Johan Tibell wrote:
  I'm
 not trying to get into a Git vs Mercurial argument here. I have more
 important things to do, like writing code. :)

Absolutely true :)


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Nils Anders Danielsson

On 2011-01-10 16:39, Daniel Peebles wrote:

(especially if it lived on github)


Even if GitHub is used you should probably arrange some other kind of
backup solution, because GitHub reserves the right to delete your
repository for any reason at any time (http://help.github.com/terms/).

--
/NAD

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Johan Tibell
On Mon, Jan 10, 2011 at 5:25 PM, Nils Anders Danielsson
n...@cs.nott.ac.uk wrote:
 Even if GitHub is used you should probably arrange some other kind of
 backup solution, because GitHub reserves the right to delete your
 repository for any reason at any time (http://help.github.com/terms/).

If that would ever happen (probably less likely than someone breaking
into our own machine and deleting the repo) we could take a repo from
anyone's machine and put it on any old Linux machine. Go distributed
version control!

Johan

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


RE: RFC: migrating to git

2011-01-10 Thread Chris Dornan
As everyone has been saying, the primary issue is the workflow of the main 
contributors and the cost of the transition.

 

However, I made the transition to Git and GitHub earlier this year and that 
initial investment has been repaid handsomely (it’s the first system I have 
felt truly comfortable with).

 

I suspect a transition to Git would work out well in the long run and make the 
GHC sources more accessible.

 

Chris

 

From: glasgow-haskell-users-boun...@haskell.org 
[mailto:glasgow-haskell-users-boun...@haskell.org] On Behalf Of Daniel Peebles
Sent: 10 January 2011 15:40
To: Simon Marlow
Cc: GHC CVS list; glasgow-haskell-users@haskell.org
Subject: Re: RFC: migrating to git

 

I fully support this (especially if it lived on github), but we should probably 
sort the top contributors to GHC in the past year or so and consider their 
opinions on the matter in that order :) I certainly would not be on that list. 
A git(hub)-based workflow would however facilitate any minor contributions I 
might make (and I'd imagine those of many others).

 

Dan

On Mon, Jan 10, 2011 at 6:19 AM, Simon Marlow marlo...@gmail.com wrote:

It's time to consider again whether we should migrate GHC development from 
darcs to (probably) git.

From our perspective at GHC HQ, the biggest problem that we would hope to 
solve by switching is that darcs makes branching and merging very difficult 
for us.  We have a few branches of HEAD that are very painful to keep merged 
with HEAD, and we would almost certainly have more branches if the overhead 
were lower.  In some sense the overhead is self-inflicted because we have the 
no-conflict policy in the mainline repository, but that is to avoid problems 
with darcs' merging algorithms (both performance and correctness).  We are 
still using darcs v1 patches rather than v2, but there are known problems with 
v2 which are preventing us from upgrading.

The darcs team have been making great strides with performance, but conflict 
handling remains a serious problem.  The darcs roadmap doesn't show this being 
fixed in the near future

 http://wiki.darcs.net/Roadmap

Rebase support is coming, and it does work, though the workflow is a bit 
laborious.

Besides the branching/merging/conflict issue, switching to git would give us 
plenty of side benefits, notably via access to a wealth of tool support.  
Making contribution easy is important to us too, and there are a lot of people 
using git.

The cost of switching is quite high, which is one reason we decided to stay 
with darcs last time.  We have multiple repos that need to be converted, and 
for some of them, where the repo is being shared with other projects, we may 
have to mirror rather than convert in place. We're prepared to put in the 
effort if the gains would be worthwhile though (offers of help are more than 
welcome!).


We're intrested in opinions from both active and potential GHC 
developers/contributors.  Let us know what you think - would this make life 
harder or easier for you?  Would it make you less likely or more likely to 
contribute?

Cheers,
   Simon

___
Cvs-ghc mailing list
cvs-...@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

 

  _  

No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1191 / Virus Database: 1435/3370 - Release Date: 01/09/11

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Malcolm Wallace

On 10 Jan 2011, at 14:02, Gregory Collins wrote:

+1. I don't have a lot of skin in this particular game (I'm not
currently a GHC contributor and am unlikely to become one in the near
future), but I can offer some anecdotal evidence:


As another non-GHC contributor, my opinion should probably also count  
for little, but my experience with git has been poor.


I have used git daily in my job for the last year.  Like Simon PJ, I  
struggle to understand the underlying model of git, despite reading  
quite a few tutorials.  I have a high failure rate with attempting  
anything beyond the equivalents of darcs record, push, and pull.


When I use darcs, my local workflow typically involves lots of amend- 
record, cherry-picking, and multiple repos/branches.  I have tried to  
do these things in git a few times and failed miserably.  I am an old- 
fashioned unix command-line lover, but I find using the git command- 
line is next to impossible, and as a consequence do almost everything  
in git gui.  If the gui interface does not let me do an action, then I  
often can't work out how to do it at all, even after googling.


Mind you, some other people at work somehow manage to use git's  
support for branching reasonably successfully.  But we have occasional  
mishaps where a repo is made totally unusable by somebody making a  
tiny mistake with their branching commands.  Our standard advice at  
work for people who get their repo muddled is to throw it away, re- 
clone the master, and manually re-code their local changes from  
scratch (with the help of diff).


If I were considering contributing minor patches to a project, the use  
of git would probably not deter me too much - I can cope with the  
simple stuff.  But if I wanted more major involvement, git would  
definitely cause me to think twice about whether to bother.


Regards,
Malcolm


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


RE: Fwd:

2011-01-10 Thread Jane Ren
Hi, 

I need to be able to take a piece of Haskell source code and get an simplified, 
typed, intermediate representation of the AST, which means I need to use 
compiler/coreSyn/CoreSyn.lhs

So I'm first trying to get the desguaredModule of the source code with
...
modSum - getModSummary $ mkModuleName ...
p - parseModule modSum
t - typecheckModule p
d - desugarModule t

Now I'm really stuck on figuring out how to connect the variable d of type 
desugaredModule to compiler/coreSyn/CoreSyn.lhs to get Expr patterns like App, 
Let, Case, etc.

Also, is it correct to get the deguaredModule first?  At least CoreSyn.lhs 
seems to suggest this.

Any suggestions would be greatly appreciated.

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Question about Haskell AST

2011-01-10 Thread Jane Ren
Hi, 

I need to be able to take a piece of Haskell source code and get an simplified, 
typed, intermediate representation of the AST, which means I need to use 
compiler/coreSyn/CoreSyn.lhs

So I'm first trying to get the desguaredModule of the source code with
...
modSum - getModSummary $ mkModuleName ...
p - parseModule modSum
t - typecheckModule p
d - desugarModule t

Now I'm really stuck on figuring out how to connect the variable d of type 
desugaredModule to compiler/coreSyn/CoreSyn.lhs to get Expr patterns like App, 
Let, Case, etc.

Also, is it correct to get the deguaredModule first?  At least CoreSyn.lhs 
seems to suggest this.

Any suggestions would be greatly apprecia
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Norman Ramsey
  It's time to consider again whether we should migrate GHC development 
  from darcs to (probably) git.

I'd be thrilled to see GHC migrate to git, and I'd be much more likely
to make new contributions to the back end.

The rest of this email contains observations about my own experience
with source-code control.

From 2007 through 2009, I spent at least several months each doing
real projects in each of darcs, hg, and git.  After this experience I
settled on git for all my personal projects and most of the projects
done in my lab.  I like git well enough to have migrated several
projects from legacy systems like CVS and (brace for it) RCS.

I love the alleged features of darcs, but the reality of the
performance is disappointing, and I once lost two week's work, which I
had to painstakingly re-create by hand.  I also have had difficulty
learning the ancillary tools that support darcs.

My workflow has never involved much cherry-picking, and I tried
revising history ('rebasing') once and didn't like it.  But I use
git's cheap branching and merging workflow *very* heavily.  (The
only part of git I use more heavily is the graphical commit tool.)

I left with a very poor impression of Mercurial.  The simplicity
is more apparent than real.  Two grave faults are

  - Crucial functionality is provided by plugins in a
configuration file.  The configuration is not itself under
revision control, and if different replicas have different
configurations, results can be very confusing.

  - As far as I can tell, conflicts *must* be handled by a plugin.
Every single one of these plugins requires a graphical tool, and I
found each tool more confusing than the next.  To make some merges
work I had to get help from students---proving the old adage that
the most clueless user of your software is not a graduate student;
it is a tenured professor.

There are plenty of other problems with Mercurial (commits don't have
unique names; it doesn't cope well with big files; the graphical
commit tool is a usability disaster; yada yada yada).

After the initial settling-in period, I've been very happy with git.
Don't get me wrong: git is a terrible tool---but it's the best of a
bad breed.  Anybody switching to git should be prepared:

  - Learning git is very unpleasant.  I would say that the design is
overly complex, but I see no evidence that any activity called
'designing the system' ever took place.  (Example: in the world of
git, 'push' and 'pull' are not dual.)

Some of what makes git strange *does* make good design sense, but
it is not explained well.  (Example: it took me forever to
understand that the mysterious 'index' is simply a device for
packaging a group of changes into a single, atomic 'commit'.)

  - Git doesn't do what it says on the tin.  In particular, certain
combinations of actions are known to lead to breakage.
Examples I have encountered personally include

  - Pushing to a repo that has changes in its working directory
  - Changing history in a repository not utterly private
  - Naming a branch 'head', which works fine on Unix and
causes baffling failures on other filesystems

Using git successfully requires that you avoid the vermin in the dark
corners.  But my top three activities---commit, publish,
branch/merge---are all well supported and happen *quickly*.  
The graphical commit tool and history browser are reasonably good.


A final comment: asking people to make the transition to git on their
own is asking a lot.  If GHC Central want to make this change, we
should plan on some kind of tutorial, perhaps at the next Haskell
Implementors' Workshop, to help people migrate.



Norman

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Ian Lynagh
On Mon, Jan 10, 2011 at 12:47:43PM -0500, Norman Ramsey wrote:
 
 My workflow has never involved much cherry-picking, and I tried
 revising history ('rebasing') once and didn't like it.  But I use
 git's cheap branching and merging workflow *very* heavily.

Do you mean you've used this to do something similar to maintaining a
GHC stable branch?


Thanks
Ian


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Ian Lynagh
On Mon, Jan 10, 2011 at 01:27:17PM +, Simon Marlow wrote:

 I don't think the dependencies get very deep in most cases, and my  
 impression is that we often don't want to pull the dependencies anyway,  
 so darcs forces us to merge the patch manually (Ian would be able to say  
 for sure how often this happens).

I'm not sure OTTOMH, but I think that it's more common that another
patch gets pulled in than a manual merge is done.

Other patches are generally comment changes, whitespace fixes, or things
like build system tweaks that weren't worth merging for the sake of it.


Thanks
Ian


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Trevor Elliott
I am very interested in contributing to GHC, though the state of
development with darcs makes me hesitate.  A switch to git would make
contribution to the project much easier.

--trevor

On 01/10/2011 03:19 AM, Simon Marlow wrote:
 It's time to consider again whether we should migrate GHC development
 from darcs to (probably) git.
 
 From our perspective at GHC HQ, the biggest problem that we would hope
 to solve by switching is that darcs makes branching and merging very
 difficult for us.  We have a few branches of HEAD that are very painful
 to keep merged with HEAD, and we would almost certainly have more
 branches if the overhead were lower.  In some sense the overhead is
 self-inflicted because we have the no-conflict policy in the mainline
 repository, but that is to avoid problems with darcs' merging algorithms
 (both performance and correctness).  We are still using darcs v1 patches
 rather than v2, but there are known problems with v2 which are
 preventing us from upgrading.
 
 The darcs team have been making great strides with performance, but
 conflict handling remains a serious problem.  The darcs roadmap doesn't
 show this being fixed in the near future
 
   http://wiki.darcs.net/Roadmap
 
 Rebase support is coming, and it does work, though the workflow is a bit
 laborious.
 
 Besides the branching/merging/conflict issue, switching to git would
 give us plenty of side benefits, notably via access to a wealth of tool
 support.  Making contribution easy is important to us too, and there are
 a lot of people using git.
 
 The cost of switching is quite high, which is one reason we decided to
 stay with darcs last time.  We have multiple repos that need to be
 converted, and for some of them, where the repo is being shared with
 other projects, we may have to mirror rather than convert in place.
 We're prepared to put in the effort if the gains would be worthwhile
 though (offers of help are more than welcome!).
 
 
 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make
 life harder or easier for you?  Would it make you less likely or more
 likely to contribute?
 
 Cheers,
 Simon
 
 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



smime.p7s
Description: S/MIME Cryptographic Signature
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Ian Lynagh
On Mon, Jan 10, 2011 at 01:27:17PM +, Simon Marlow wrote:

 It would be a prerequisite to switching that a GHC developer only has to  
 use one VCS.  So we either migrate dependencies to git, or mirror them  
 in GHC-specific git branches.

I think it's hard to know how well it's going to work in advance (I was
going to try redoing all the GHC 7 merges with git, but that won't tell
us much if they would have been recorded differently in a git workflow),
so perhaps we should change only the GHC repo at first, and see how it
goes?

That way, if we decide it's worse, we haven't done a lot of work
migrating dependencies or setting up mirrors, and to roll back we only
need to migrate the new git patches into the old darcs repo.


Thanks
Ian


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Iavor Diatchki
Hello,

I have been working on a GHC branch for the last few months and, for me,
switching to git would be a win because I find it quite difficult to keep my
branch and HEAD synchronized.  I allocate about a day, probably about once a
month, to redo my repository so that it is in sync with HEAD.

My background is that I use many VCSes for work (although lately, mostly
git), and git for my non-work projects.  I am by no means an advanced VCS
user.  I do like git's graph-based non-mutable history model and it has been
the only VCS where I've been able to work out how to do something more or
less from first principles.  I don't really use the command line interface
much, I tend to use mostly tools like gitk, and git gui.

-Iavor

On Mon, Jan 10, 2011 at 10:46 AM, Ian Lynagh ig...@earth.li wrote:

 On Mon, Jan 10, 2011 at 01:27:17PM +, Simon Marlow wrote:
 
  It would be a prerequisite to switching that a GHC developer only has to
  use one VCS.  So we either migrate dependencies to git, or mirror them
  in GHC-specific git branches.

 I think it's hard to know how well it's going to work in advance (I was
 going to try redoing all the GHC 7 merges with git, but that won't tell
 us much if they would have been recorded differently in a git workflow),
 so perhaps we should change only the GHC repo at first, and see how it
 goes?

 That way, if we decide it's worse, we haven't done a lot of work
 migrating dependencies or setting up mirrors, and to roll back we only
 need to migrate the new git patches into the old darcs repo.


 Thanks
 Ian


 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Roman Leshchinskiy
On 10/01/2011, at 13:27, Simon Marlow wrote:

 On 10/01/2011 13:02, Max Bolingbroke wrote:
 However, I remember the last time this came up there were some issues
 that might make migration painful. From the top of my head:
 
 1) Some people expressed concern that they would have to use two
 revision control systems to work on GHC, because not all GHC
 dependencies would be git-based.
 
 It would be a prerequisite to switching that a GHC developer only has to use 
 one VCS.  So we either migrate dependencies to git, or mirror them in 
 GHC-specific git branches.

I'm not sure how that is going to work. It might well be possible to build GHC 
using only git. But most GHC developers also contribute to various libraries 
which are often quite intimately linked to GHC. In particular, GHC patches are 
often accompanied by library patches. Unless all those libraries switch to git, 
too, we'll have to use both git and darcs which would be *really* annoying.

Personally, I rather dislike git, mostly for the reasons that Malcolm already 
mentioned. Compared to darcs, it seems to get in the way much too often. It 
also seems to make finding buggy patches rather hard. But maybe I just don't 
know how to use it properly. In any case, a switch to git wouldn't deter me 
from contributing to GHC, but neither would a switch to any other VCS. I would 
certainly swear more often while developing, though.

Roman



___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: Mercurial? Re: RFC: migrating to git

2011-01-10 Thread Bryan O'Sullivan
On Mon, Jan 10, 2011 at 5:34 AM, Pavel Perikov peri...@gmail.com wrote:

 Please please consider Mercurial if migration from darcs is inevitable :)


For what it's worth, Mercurial generally interoperates quite well with git
and github, using the hg-git plugin. As a longtime Mercurial user and an
occasional GHC contributor, it wouldn't be a practical problem for me if GHC
were to switch to git.
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Neil Mitchell
 As another non-GHC contributor, my opinion should probably also count for
 little, but my experience with git has been poor.

 I have used git daily in my job for the last year.  Like Simon PJ, I
 struggle to understand the underlying model of git, despite reading quite a
 few tutorials.  I have a high failure rate with attempting anything beyond
 the equivalents of darcs record, push, and pull.

I'm in exactly the same camp as Malcolm. I don't understand git, and I
end up deleting the entire repo and starting again every time I try
and do anything clever - something I've never needed to do with darcs.
I consider the git equivalent of darcs unrecord to be rm -rf, but
I'm sure that's a lack of knowledge/intuition on my part.

All my git dislike aside, I wouldn't worry about git and Windows. GHC
on Windows already drags in plenty of dependencies from Cygwin or
Mingw, both of which provide workable git binaries, and none of which
ever seem to have caused a problem. The standard gui's (gitk and git
gui) both work on Windows, and I certainly miss them when using darcs.

Thanks, Neil

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Adam Wick

On 01/10/2011 08:52 AM, Malcolm Wallace wrote:
If I were considering contributing minor patches to a project, the use 
of git would probably not deter me too much - I can cope with the 
simple stuff.  But if I wanted more major involvement, git would 
definitely cause me to think twice about whether to bother.


And just to show that you can't make everyone happy ... I'll put in an 
equal-and-opposite vote  from Malcolm. GHC's use of darcs is a blocker 
for me even thinking about doing any work on GHC or the related 
libraries; my limited experience with darcs has been terrible, and the 
swearing I've heard about darcs makes me think my experience was not 
unique. Switching to git would make the chance that I'd do work on GHC 
nonzero.



- Adam



smime.p7s
Description: S/MIME Cryptographic Signature
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Daniel Peebles
So the basic point seems to be: if you know how to use a tool, you don't
usually curse and swear when you use it. If you don't, you tend to swear a
lot!

:)

On Mon, Jan 10, 2011 at 5:32 PM, Adam Wick aw...@galois.com wrote:

 On 01/10/2011 08:52 AM, Malcolm Wallace wrote:

 If I were considering contributing minor patches to a project, the use of
 git would probably not deter me too much - I can cope with the simple stuff.
  But if I wanted more major involvement, git would definitely cause me to
 think twice about whether to bother.


 And just to show that you can't make everyone happy ... I'll put in an
 equal-and-opposite vote  from Malcolm. GHC's use of darcs is a blocker for
 me even thinking about doing any work on GHC or the related libraries; my
 limited experience with darcs has been terrible, and the swearing I've heard
 about darcs makes me think my experience was not unique. Switching to git
 would make the chance that I'd do work on GHC nonzero.


 - Adam


 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Thomas Schilling
I just want to point out that since the last discussion we collected
some migration advice at
http://hackage.haskell.org/trac/ghc/wiki/GitForDarcsUsers

Some of it may be untested (or wrong), but it should be a good starting point.

On 10 January 2011 22:15, Neil Mitchell ndmitch...@gmail.com wrote:
 As another non-GHC contributor, my opinion should probably also count for
 little, but my experience with git has been poor.

 I have used git daily in my job for the last year.  Like Simon PJ, I
 struggle to understand the underlying model of git, despite reading quite a
 few tutorials.  I have a high failure rate with attempting anything beyond
 the equivalents of darcs record, push, and pull.

 I'm in exactly the same camp as Malcolm. I don't understand git, and I
 end up deleting the entire repo and starting again every time I try
 and do anything clever - something I've never needed to do with darcs.
 I consider the git equivalent of darcs unrecord to be rm -rf, but
 I'm sure that's a lack of knowledge/intuition on my part.

 All my git dislike aside, I wouldn't worry about git and Windows. GHC
 on Windows already drags in plenty of dependencies from Cygwin or
 Mingw, both of which provide workable git binaries, and none of which
 ever seem to have caused a problem. The standard gui's (gitk and git
 gui) both work on Windows, and I certainly miss them when using darcs.

 Thanks, Neil

 ___
 Cvs-ghc mailing list
 cvs-...@haskell.org
 http://www.haskell.org/mailman/listinfo/cvs-ghc




-- 
Push the envelope. Watch it bend.

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread David Peixotto
On Jan 10, 2011, at 5:19 AM, Simon Marlow wrote:
 
 We're intrested in opinions from both active and potential GHC 
 developers/contributors.  Let us know what you think - would this make life 
 harder or easier for you?  Would it make you less likely or more likely to 
 contribute?

+1 for moving to git

As an infrequent contributor I would welcome the move to git. I think the 
biggest advantage from my perspective would be enabling branches which I have 
avoided up to now because of the painful process I hear about from others.

Another possible advantage to git would be its support for submodules[1]. If we 
made the switch to git for all the repositories that GHC uses, then we could 
set them up as submodules. The advantage of submodules is that the GHC repo 
would contain pointers to the exact commit needed in the remote repository, and 
they would be under version control. Having submodules for the other repos 
would be similar to the darcs_all script, but would not have the danger of 
leaving [dangling pointers][2] when making a new branch.

[1] http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html 
[2] http://www.haskell.org/pipermail/cvs-ghc/2010-November/057573.html
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Scott Michel
I'm inclined to vote +1 for a move to git. JP and I seem to collaborate just
fine using github for EclipseFP and scion, FWIW. I tend to develop on ad hoc
branches before I merge changes back onto the master branch.

I can't say that either of us have run into significant problems, although I
did hose myself once merging some of JP's changes onto my branch. Not a big
deal, since one will run into those problems from time to time.

Win32/64: Current msysgit hasn't caused me any significant pain. I'm not
entirely focused on performance, just getting latest patch sets from the
github repo.

Since it's just the two of us working on separate forks, I'm not sure that
either of us are pushing git to its limits. I suspect that if there are
multiple branches being developed, merging code from multiple branches into
your branch will be tough. Not sure that any VCS will help you there.

Where things will get really nasty is merging later changes to the
scion-server code back with nominolo's latest mega patch. This is where
theory of patches or any VCS theory will just break, since the changes are
substantial. I'm not sure any VCS or DVCS will ever solve the problem of
major divergence.


-scooter

On Mon, Jan 10, 2011 at 3:19 AM, Simon Marlow marlo...@gmail.com wrote:

 It's time to consider again whether we should migrate GHC development from
 darcs to (probably) git.

 From our perspective at GHC HQ, the biggest problem that we would hope to
 solve by switching is that darcs makes branching and merging very difficult
 for us.  We have a few branches of HEAD that are very painful to keep merged
 with HEAD, and we would almost certainly have more branches if the overhead
 were lower.  In some sense the overhead is self-inflicted because we have
 the no-conflict policy in the mainline repository, but that is to avoid
 problems with darcs' merging algorithms (both performance and correctness).
  We are still using darcs v1 patches rather than v2, but there are known
 problems with v2 which are preventing us from upgrading.

 The darcs team have been making great strides with performance, but
 conflict handling remains a serious problem.  The darcs roadmap doesn't show
 this being fixed in the near future

  http://wiki.darcs.net/Roadmap

 Rebase support is coming, and it does work, though the workflow is a bit
 laborious.

 Besides the branching/merging/conflict issue, switching to git would give
 us plenty of side benefits, notably via access to a wealth of tool support.
  Making contribution easy is important to us too, and there are a lot of
 people using git.

 The cost of switching is quite high, which is one reason we decided to stay
 with darcs last time.  We have multiple repos that need to be converted, and
 for some of them, where the repo is being shared with other projects, we may
 have to mirror rather than convert in place. We're prepared to put in the
 effort if the gains would be worthwhile though (offers of help are more than
 welcome!).


 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

 Cheers,
Simon

 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread David Terei
On 10 January 2011 22:19, Simon Marlow marlo...@gmail.com wrote:
 We're intrested in opinions from both active and potential GHC
 developers/contributors.  Let us know what you think - would this make life
 harder or easier for you?  Would it make you less likely or more likely to
 contribute?

I would really like GHC to move to git. I find darcs pretty annoying
when working in a branch and the performance still just isn't good
enough (e.g can't use 'annotate'). I've been a big fan of git from
pretty much as soon as I started using it, its interface is badly
designed at times but with the help of google I've always been able to
get it to do what I want. Defiantly can't say the same for darcs. It
didn't stop me contributing but when I first started hacking on ghc I
was very put of by darcs as I had only recently got over the
nightmares of the very common exponential merge issue from 1.x days.

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread Manuel M T Chakravarty
I agree with Roman's position.  I would prefer to stay with darcs (it has its 
advantages and disadvantages, but has definitely been improving much in the 
past).

In any case, all of GHC including all dependencies must be available and 
patchable with a *single* VCS.  Mixing VCS' will lead to madness.

Manuel

PS: This talk about contributing to a project if it changes its VCS seems a bit 
lame to me.  You contribute to a project in a serious way because you care 
about the project and because you need whatever improvements you are 
implementing, not because you like the VCS.


Roman Leshchinskiy:
 On 10/01/2011, at 13:27, Simon Marlow wrote:
 
 On 10/01/2011 13:02, Max Bolingbroke wrote:
 However, I remember the last time this came up there were some issues
 that might make migration painful. From the top of my head:
 
 1) Some people expressed concern that they would have to use two
 revision control systems to work on GHC, because not all GHC
 dependencies would be git-based.
 
 It would be a prerequisite to switching that a GHC developer only has to use 
 one VCS.  So we either migrate dependencies to git, or mirror them in 
 GHC-specific git branches.
 
 I'm not sure how that is going to work. It might well be possible to build 
 GHC using only git. But most GHC developers also contribute to various 
 libraries which are often quite intimately linked to GHC. In particular, GHC 
 patches are often accompanied by library patches. Unless all those libraries 
 switch to git, too, we'll have to use both git and darcs which would be 
 *really* annoying.
 
 Personally, I rather dislike git, mostly for the reasons that Malcolm already 
 mentioned. Compared to darcs, it seems to get in the way much too often. It 
 also seems to make finding buggy patches rather hard. But maybe I just don't 
 know how to use it properly. In any case, a switch to git wouldn't deter me 
 from contributing to GHC, but neither would a switch to any other VCS. I 
 would certainly swear more often while developing, though.
 
 Roman
 
 
 
 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: RFC: migrating to git

2011-01-10 Thread scooter . phd
I'm not sure if your statement regarding the decoupling between contributors 
and VCSes holds water. The VCS is definitely a factor, but certainly not the 
only one. I've been demotivated by VCSes before and it has directly impacted 
whether I continued my involvement. Granted that the VCS was SCCS, but still...

Sample size of one, not the basis for a system of government and statements 
regarding watery bints lying in ponds apply.


-scooter
Sent from my Verizon Wireless BlackBerry

-Original Message-
From: Manuel M T Chakravarty c...@cse.unsw.edu.au
Sender: glasgow-haskell-users-boun...@haskell.org
Date: Tue, 11 Jan 2011 15:01:43 
To: GHCcvs-...@haskell.org; GHC Listglasgow-haskell-users@haskell.org
Cc: Simon Marlowmarlo...@gmail.com
Subject: Re: RFC: migrating to git

I agree with Roman's position.  I would prefer to stay with darcs (it has its 
advantages and disadvantages, but has definitely been improving much in the 
past).

In any case, all of GHC including all dependencies must be available and 
patchable with a *single* VCS.  Mixing VCS' will lead to madness.

Manuel

PS: This talk about contributing to a project if it changes its VCS seems a bit 
lame to me.  You contribute to a project in a serious way because you care 
about the project and because you need whatever improvements you are 
implementing, not because you like the VCS.


Roman Leshchinskiy:
 On 10/01/2011, at 13:27, Simon Marlow wrote:
 
 On 10/01/2011 13:02, Max Bolingbroke wrote:
 However, I remember the last time this came up there were some issues
 that might make migration painful. From the top of my head:
 
 1) Some people expressed concern that they would have to use two
 revision control systems to work on GHC, because not all GHC
 dependencies would be git-based.
 
 It would be a prerequisite to switching that a GHC developer only has to use 
 one VCS.  So we either migrate dependencies to git, or mirror them in 
 GHC-specific git branches.
 
 I'm not sure how that is going to work. It might well be possible to build 
 GHC using only git. But most GHC developers also contribute to various 
 libraries which are often quite intimately linked to GHC. In particular, GHC 
 patches are often accompanied by library patches. Unless all those libraries 
 switch to git, too, we'll have to use both git and darcs which would be 
 *really* annoying.
 
 Personally, I rather dislike git, mostly for the reasons that Malcolm already 
 mentioned. Compared to darcs, it seems to get in the way much too often. It 
 also seems to make finding buggy patches rather hard. But maybe I just don't 
 know how to use it properly. In any case, a switch to git wouldn't deter me 
 from contributing to GHC, but neither would a switch to any other VCS. I 
 would certainly swear more often while developing, though.
 
 Roman
 
 
 
 ___
 Glasgow-haskell-users mailing list
 Glasgow-haskell-users@haskell.org
 http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users