[MITgcm-devel] suggestion for http://mitgcm.org/public/source_code.html

Ryan Abernathey ryan.abernathey at gmail.com
Sat Nov 21 13:32:15 EST 2015


Samar,

I know that a migration to git would inevitably change some aspects of the
way people work with MITgcm. This is unavoidable. I hear your worry that it
would upset the cvs workflow you have become used to.

But the specific criticism you give of git is spurious. All of the metadata
regarding the file history, including the date of the latest modification,
is of course tracked by git and can be accessed via the "git log" command.
The notion of "trying to see what has changed" by looking at file
timestamps is made obsolete by the very rich, detailed history tracking
features of git and github. (For example, a commit history for astropy:
https://github.com/astropy/astropy/commits/master.)

There are plenty of good arguments not to migrate MITgcm to git. For
example (not saying these are true, just plausible):
- it will take too much time and effort
- the current MITgcm developers don't know how to use git
- documentation and testreport workflows would have to be updated
- MITgcm is moving into "legacy" status, with little new development on the
horizon

But there is no way that the cvs feature set is actually superior to git in
any way. There is a reason that 99% of software development is now
happening in git / github. It is not because git is "hard" or only for
"professional" developers. In fact, just the opposite: git really
facilitates collaborative development and drastically lowers the difficulty
bar for contributing to open source projects.

Having listed what I see as the cons, what would be the pros?
- Much more flexible branching structure which would facilitate the
development of new features
- Easier for new people to propose changes via pull requests (less fear of
breaking something)
- Great online collaborative tools at github (code comments, pull request
discussion, etc.)
- Possibility of continuous integration for testing

I know that GFDL has adopted git / github for MOM6, and they seem to be
loving it. If Alistair is still on this list, maybe he can weigh in.

Sorry for the thread hijack! ;)

-Ryan


On Sat, Nov 21, 2015 at 12:44 PM, Samar Khatiwala <spk at ldeo.columbia.edu>
wrote:

> Hi, my £0.02 worth:
>
> I use git(hub) for my TMM code repository but I would not recommend
> migrating MITgcm to it for the simple reason
> that git does not maintain time stamps. If you clone a git repository onto
> your machine all the files will have the time
> of download. This is apparently a feature and not a bug and I’ve not found
> a way around it. I’m sure ‘professional’ code
> developers might consider it bad practice but the first thing I look at
> when trying to see what has changed is the time
> stamp! (Nor is there a line at the top of the file telling you the
> checkpoint/version number.) In my opinion this one
> disadvantage outweighs any ‘awesome’ features git might have.
>
> Samar
>
> On Nov 21, 2015, at 4:15 PM, Ryan Abernathey <ryan.abernathey at gmail.com>
> wrote:
>
> This seems like a good time to suggest that we migrate the mitgcm
> repository to git / github. 😉
> http://git-scm.com/docs/gitcvs-migration
>
> I cannot exaggerate how awesome github is for large, collaborative
> software development. The initial overhead of migration would rapidly be
> made up by gains in communication and productivity.
>
> http://www.wired.com/2015/03/github-conquered-google-microsoft-everyone-else/
>
> I would be happy to help with this project if the core developers are
> interested.
>
> Best,
> Ryan
>
>
> On Sat, Nov 21, 2015 at 11:10 AM, Jean-Michel Campin <jmc at ocean.mit.edu>
> wrote:
>
>> Hi Dimitris,
>>
>> Seems that something happened to the disk server "orwell" around 11.pm
>> yesterday but was up again, at least after 00:45 this morning.
>> so you should be able to see the updated web-page "using_cvs.html" only
>> now
>> (as opposed to earlier this morning).
>> The manual is re-built everyday ~3:30pm, so no yet there.
>>
>> And I confirm that my failed attempt (without the cvs login step) was
>> without
>> the duplicated "cvsanon" (that I missed in your previous msg).
>>
>> Cheers,
>> Jean-Michel
>>
>> On Fri, Nov 20, 2015 at 07:28:15PM -0800, Dimitris Menemenlis wrote:
>> > OK, I have added to using_cvs.html and section 3.2.1, as suggested.
>> > Hopefully manual will compile OK tonight.  If not I can fix tomorrow.
>> >
>> > Also I just checked that "cvs login" is not needed.
>> > The reason is that the password is specified right after the :pserver:
>> > Password happens to be ???cvsanon???, same as username, hence the
>> repeat.
>> >
>> > And for closing this thread, please note that the "<http://mitgcm.org>???
>> in line
>> > at very bottom of thread is not supposed to be there.  It was added
>> > surreptitiously by mail program.  The correct command line should look
>> like:
>> > $ cvs -d :pserver:cvsanon:cvsanon at mitgcm.org:/u/gcmpack co -P MITgcm
>> >
>> > This form of cvs command was convenient for me for a script that I was
>> writing.
>> > Maybe others will also find it useful.
>> >
>> > Cheers, D.
>> >
>> > > On Nov 20, 2015, at 10:27 AM, Jean-Michel Campin <jmc at ocean.mit.edu>
>> wrote:
>> > >
>> > > Hi Dimitris,
>> > >
>> > > I am not sure that it's much more convenient for users to specify
>> > > the pserver path within the cvs command itself.
>> > > Also I thinks the "cvs login" stage is still needed the first time
>> > > (run into this issue last time I set-up an automatic testreport on a
>> new
>> > > platform where I did not use cvs before but use "cvs co" the same way
>> as
>> > > you suggest).
>> > > And we would need to update the instructions (both in manual & on
>> web-site)
>> > > to reflect this change.
>> > >
>> > > However, we could certainly mention this alternative way on the CVS
>> web-site page
>> > > (http://mitgcm.org/public/using_cvs.html) and in the manual (section
>> 3.2.1) as well.
>> > >
>> > > Cheers,
>> > > Jean-Michel
>> > >
>> > > On Fri, Nov 20, 2015 at 02:36:39AM +0000, Menemenlis, Dimitris (329C)
>> wrote:
>> > >> would it make sense to replace:
>> > >>
>> > >>  bash or sh shell:
>> > >>    $ export CVSROOT=':pserver:cvsanon at mitgcm.org<http://mitgcm.org
>> >:/u/gcmpack'
>> > >>    $ cvs login
>> > >>      ( enter the CVS password: "cvsanon" )
>> > >>    $ cvs co -P MITgcm
>> > >>
>> > >>  tcsh or csh shell:
>> > >>    $ setenv CVSROOT ':pserver:cvsanon at mitgcm.org<http://mitgcm.org
>> >:/u/gcmpack'
>> > >>    $ cvs login
>> > >>      ( enter the CVS password: "cvsanon" )
>> > >>    $ cvs co -P MITgcm
>> > >>
>> > >>
>> > >> with:
>> > >>
>> > >>    $ cvs -d :pserver:cvsanon:cvsanon at mitgcm.org<http://mitgcm.org>:/u/gcmpack
>> co -P MITgcm
>> >
>> >
>> > _______________________________________________
>> > MITgcm-devel mailing list
>> > MITgcm-devel at mitgcm.org
>> > http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>
>> _______________________________________________
>> MITgcm-devel mailing list
>> MITgcm-devel at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mitgcm.org/pipermail/mitgcm-devel/attachments/20151121/4d9c1bf2/attachment-0001.htm>


More information about the MITgcm-devel mailing list