Last Comment Bug 769899 - Mozbot should switch from CVS, which is old and broken, to a newer, saner, and better version control system
: Mozbot should switch from CVS, which is old and broken, to a newer, saner, an...
Status: RESOLVED FIXED
:
Product: Webtools
Classification: Server Software
Component: Mozbot (show other bugs)
: Trunk
: All All
: -- normal (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-30 02:09 PDT by Shlomi Fish
Modified: 2014-06-02 20:23 PDT (History)
4 users (show)
See Also:
QA Whiteboard:
Iteration: ---
Points: ---


Attachments

Description Shlomi Fish 2012-06-30 02:09:09 PDT
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1
Build ID: 20120616022601

Steps to reproduce:

During my work on Mozbot as part of this bug - https://bugzilla.mozilla.org/show_bug.cgi?id=531785 - I used a CVS<->Mercurial hack I found online which has left me with a large diff that I don't know how to merge. CVS is old, broken, idiosyncratic, and dysfunctional, and using it deters people from contributing to Mozbot (and there's still a lot of work to do there, as for example, it should be converted from Net::IRC to POE::Component::IRC or whatever - see https://metacpan.org/module/Net::IRC.) 




Actual results:

Wolf noted that:

[QUOTE]
Mozbot isn't very active, and I haven't found moving VCSes to be worthwhile - and I'm not an active enough programmer to have learned git or hg, svn is what i'm most comfortable with.
[/QUOTE]

Well, part of the problem why Mozbot is not very active may be the fact that it is using CVS, which deters several potential contributors. There are now far superior (and free-and-open-source) alternatives, which provide a much smoother experience, which will prevent me from losing my changes again.

One can easily convert a CVS repository to something else using http://cvs2svn.tigris.org/  or http://mercurial.selenic.com/wiki/RepositoryConversion#CVS .

Please also see this post by Michael G. Schwern in response to mine giving an analogy about bicycle lanes in Portland and in Pittsburgh: http://www.hexten.net/pipermail/tapx-dev/2007-June/000356.html .


Expected results:

Mozbot should use a newer, and better, version control system.
Comment 1 Tomer Cohen :tomer 2012-06-30 02:14:26 PDT
I'd suggest to do the migration yourself to a temporary git or mercurial repository (bitbucket.org and github can provide you the repository free hosting), and after you can prove that the process is possible, ask to make the migration official. I'd go with github, as it is more hackers friendly than other solutions.
Comment 2 Shlomi Fish 2012-07-04 07:21:27 PDT
(In reply to Tomer Cohen :tomer from comment #1)
> I'd suggest to do the migration yourself to a temporary git or mercurial
> repository (bitbucket.org and github can provide you the repository free
> hosting), and after you can prove that the process is possible, ask to make
> the migration official. I'd go with github, as it is more hackers friendly
> than other solutions.

The main problem is that I will likely run into problems if someone is going to commit to the master repository, which is still going to be CVS. Imagine the following scenario:

1. I import the history of the CVS repository into a git or Mercurial repository.

2. I make some changes.

3. A Mozbot committer makes some changes in the CVS repository.

4. How do I integrate the changes from #3 into my DVCS history? It would be difficult due to CVS’s user-unfriendliness and limitations.

Regards,

-- Shlomi Fish
Comment 3 Shlomi Fish 2012-07-05 04:30:49 PDT
(In reply to Shlomi Fish from comment #2)
> (In reply to Tomer Cohen :tomer from comment #1)
> > I'd suggest to do the migration yourself to a temporary git or mercurial
> > repository (bitbucket.org and github can provide you the repository free
> > hosting), and after you can prove that the process is possible, ask to make
> > the migration official. I'd go with github, as it is more hackers friendly
> > than other solutions.
> 
> The main problem is that I will likely run into problems if someone is going
> to commit to the master repository, which is still going to be CVS. Imagine
> the following scenario:
> 
> 1. I import the history of the CVS repository into a git or Mercurial
> repository.
> 
> 2. I make some changes.
> 
> 3. A Mozbot committer makes some changes in the CVS repository.
> 
> 4. How do I integrate the changes from #3 into my DVCS history? It would be
> difficult due to CVS’s user-unfriendliness and limitations.
> 
> Regards,
> 
> -- Shlomi Fish

I'd like to note that a situation such as I describe has already happened when I worked on https://bugzilla.mozilla.org/show_bug.cgi?id=531785 causing me to need to throw away a lot of time-consuming work, so I'm speaking from experience.
Comment 4 Shlomi Fish 2013-01-20 12:57:10 PST
Hi all, any comments? Please reply or better yet - perform the transition for the greater good.

Regards,

    Shlomi Fish
Comment 5 David Weir (satdav) 2013-01-21 08:01:21 PST
Hi wolf since you are the main person who deals with firebot what do you think of this
Comment 6 Shlomi Fish 2013-01-21 09:10:44 PST
I was told I should give the commands needed, which are easy to find in the cvs2svn/cvs2git URLs I gave, but here they are:

http://cvs2svn.tigris.org/cvs2git.html

I won't reproduce them here, because I don't know the exact locations of the paths, and they require a physical (same disk/file system) access to the file system.

Regarding my personal Mozbot Mercurial bitbucket.org repository, see:

* https://bitbucket.org/shlomif/mozbot-shlomif

However, note that I used an ugly hack that just versioned the git working copy as a Mercurial repository (best I could find at the point), it only has very partial history, and Mozilla people seem to prefer git and GitHub now anyway (which I don't mind either, because it's also pretty good).

Regards,

-- Shlomi Fish
Comment 7 Wolf [:wolf] 2013-02-03 00:41:58 PST
I currently have no time to migrate VCSes for Mozbot.

I'm not a "Mozilla people" so I don't prefer git or GitHub, i'm familar with neither. (I'm also, honestly, not familar with Hg either; Only CVS and SVN.)

I have no problem with Mozbot migrating to SVN, for example. Provided History is retained. Other VCSes i'm more resistant to.
Comment 8 Tomer Cohen :tomer 2013-02-03 01:14:13 PST
While Git/Hg are doesn't share most of the parameters of CVS as Subversion does, I don't think it is difficult enough to prefer to stick with CVS or switch to SVN. But Git and Mercurial are very well documented, and you can view your complete repository on sites such as bitbucket and github as well as do commits directly from the site (useful for quick commits, such as fixing a typo when you are on the go or too lazy to do the commit from the command line. Github also became an social network for Open Source activists, so most projects there get forked and receive new contributions from people who were not active in the project before it appeared on Github for the first time. 

I'd suggest going with github, and also possible to request to create the repository under the Mozilla group, so its repository will be much more visible.
Comment 9 Shlomi Fish 2013-12-27 22:53:36 PST
Hi Wolf,

replying because there hasn't been any activity on this ticket for many months.

(In reply to Wolf [:wolf] from comment #7)
> I currently have no time to migrate VCSes for Mozbot.
> 

It takes very little time to convert the repository from CVS to something else using cvs2svn (which also provides cvs2git, and there's a cvs2hg version of it as well). I've done it several times. And this time will eventually be greatly compensated in a more flaw-free work with a better source control alternative.

> I'm not a "Mozilla people" so I don't prefer git or GitHub, i'm familar with
> neither. (I'm also, honestly, not familar with Hg either; Only CVS and SVN.)
> 
> I have no problem with Mozbot migrating to SVN, for example. Provided
> History is retained. Other VCSes i'm more resistant to.

cvs2svn/etc. retains the version control history. That's part of its whole point. Switching from CVS to Subversion will be better than staying with CVS, because one can use git-svn or hgsubversion to work with a remote Subversion repository (and naturally the "svn" client behaves much better than the "cvs" one, so you can use that as well). But the status quo of using CVS is the worst option.

Regards,

-- Shlomi Fish
Comment 10 Shlomi Fish 2013-12-27 22:55:00 PST
(In reply to Tomer Cohen :tomer from comment #8)
> While Git/Hg are doesn't share most of the parameters of CVS as Subversion
> does, I don't think it is difficult enough to prefer to stick with CVS or
> switch to SVN. But Git and Mercurial are very well documented, and you can
> view your complete repository on sites such as bitbucket and github as well
> as do commits directly from the site (useful for quick commits, such as
> fixing a typo when you are on the go or too lazy to do the commit from the
> command line. Github also became an social network for Open Source
> activists, so most projects there get forked and receive new contributions
> from people who were not active in the project before it appeared on Github
> for the first time. 
> 
> I'd suggest going with github, and also possible to request to create the
> repository under the Mozilla group, so its repository will be much more
> visible.

I agree with what Tomer said here.

Regards,

-- Shlomi Fish
Comment 11 Andreas Wagner [:TheOne] 2014-06-01 12:16:48 PDT
As Firebot has a new home now (https://github.com/globau/firebot), I think this can be closed.
Comment 12 Shlomi Fish 2014-06-02 20:23:00 PDT
(In reply to Andreas Wagner [:TheOne] from comment #11)
> As Firebot has a new home now (https://github.com/globau/firebot), I think
> this can be closed.

Many things. git would be much better than CVS for me (whatever its other faults may be).

Note You need to log in before you can comment on or make changes to this bug.