[jsword-devel] Git

Matěj Cepl mcepl at redhat.com
Sun Mar 18 04:41:42 MST 2012


On 17.3.2012 21:52, DM Smith wrote:
> In order to go to git, I think there are a few things that need to
> be worked out.
> 1) When? Should it be after the next release? Or can it be done now
> without impacting the release (other than a little bit of time)?

I have no idea, this is not that much question of technology as the 
logistics of your work about which I have no clue. I think branching out 
(or tagging, whatever you do) of the new version could be a good 
opportunity.

It would be probably good to have prepared scripts for cleaning the 
repository though, so they are just run on new git repo (see below).

> 2) How? I agree with you that 3rd party code and jar artifacts
> shouldn't be in the repository. It's not that big a deal with SVN as
> one only gets the top level, so each is included only once in the
> checkout, but with git every upgrade is included in the checkout.
> The question I have is how that should be done? How do we find them
> in svn? Where do we put what is currently needed? (I'm thinking the
> maven repository that we've stood-up on CrossWire, if it is not in
> maven central.)

No, it should be IMHO done on fresh git repo generated with git svn. 
git-filter-branch command is able to do it. See its manpage and for 
example 
http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/ 
(files to be removed could be indicated by other means than just by path).

> 3) Who? We have a few users that have write permissions to JSword.
> Everyone else is read-only. We need this to continue in some form or
> another.

I think the same users should be allowed (by having ssh access?) to 
push. Anybody could have read-only access.

> 4) Where? What is the best place to serve it? GitHub? Gitorious? Set
> up a server on CrossWire? If so which server? Gitosis? Gitolite?
> Other?

The most simple solution (and if you have just one repo and few users 
with push access) is to just use git-daemon (provided with the basic git 
installation) and limit access to it with SSH. See 
http://schacon.github.com/git/user-manual.html#public-repositories for 
more info.

Gitosis/gitolite are not for you (that's for sites with hundreds of 
repositories and complicated ACLs).

Of course, gitorious/github are much more comfortable if you don't 
insist on having the code on your own servers (well, it is possible to 
install gitorious on your own server). For free software fanatics among 
us, github itself is NOT free software, so you've have your data locked 
in the proprietary database (not that much issue with the code itself, 
but there are no official means of exporting issues, wiki). OTOH, huge 
amount of users on github and social-networking-qualities of thereof are 
very pleasant (also it provides quite decent issue tracker).

For my own code (/me being own-your-data fanatic), I use gitorious and I 
have installed bugzilla on my own server to have issue tracking. Works 
fine. Many many other people switched to github with very good results.

> 5) What? How far back do we go? From the beginning, 1.0, 1.6? Over
> time we've refactored projects in Eclipse several times. It needs to
> include what is now in the JSword project, which is the merge of
> jsword-common into jsword. What should be done with the other
> projects? They can follow later into other repositories, but we will
> need to have a comparable build system on the CrossWire server that
> will pull all the code and build it.

a) I have no idea ... these decisions require more knowledge of the 
project than I have
b) I would generally go from the beginnings (and so when everything is 
done, SVN repo could be completely eliminated) ... complete git svn 
created repo (with binary blobs, etc. and with all branches; 
https://gitorious.org/sword/jsword) has .git subdirectory of 440MB. 
That's one time expense of course, all pushes/pulls send over the wire 
only individual commits. And of course, pruning binary blobs should make 
the repo significantly smaller.

Best,

Matěj

-- 
http://www.ceplovi.cz/matej/, Jabber: mcepl<at>ceplovi.cz
GPG Finger: 89EF 4BC6 288A BF43 1BAB  25C3 E09F EF25 D964 84AC

- Do you think of yourself as a Christian artist?
- I'm an artist who is a Christian. I'm not a Christian artist.
       -- Johny Cash
          in his last interview




More information about the jsword-devel mailing list