[server-admins] [sword-support] Pull request and forum registration
DM Smith
dmsmith at crosswire.org
Thu Feb 26 09:11:20 MST 2015
I thought Albert’s email was thorough and useful.
My experience is framed by work and by JSword.
IMHO:
1) Using git improves collaboration over using SVN. Not because git is better, but because potential contributors want to use it. This is further improved by hosting on github as people feel free to connect and send in pull requests.
I think this is a very important point.
I don’t like git. I like SVN. But I like collaboration more.
2) Github is a useful face for visibility and collaboration. The nature of git is that it is distributed. Every clone is egalitarian and equal. The “system of record,” the “authoritative master” git repository is established by policy. There is no reason that having the project visible on github means that github is that authoritative master. When I move JSword back from github back to CrossWire server its presence on github won’t go away and its usefulness won’t change. It is a small administrative overhead to manage the two in synchronization.
We have always welcomed patches. But using git, JSword has gotten many more.
3) We are using gitosis because Peter has experience with it and would like to leverage that experience. It provides reasonable control at a repository level, defining who can write to it and who can read it. As far as I can tell, it doesn’t go below that. The decision to use gitosis is not set in stone. We could setup Stash or something else.
Using git for SWORD would suggest multiple repositories: API, Corba, bindings, utilities, …. This is not necessary, but it should be discussed. My take is that anything that has a different release cycle and access rules should be managed separately.
4) Git is not a good place to hold binaries that may change. For JSword, we had taken the approach that all artifacts that JSword and Bible Desktop depended upon would be stored in svn just in case that dependency disappeared and to improve the OOTB development experience. Today, this is not necessary.
5) A git/svn bridge can be clumsy. I tried it at work, but our use pattern was far different than what is done here under SVN. We were managing branches to represent change requests and trunk was used to manage bug fixes. We had frequent merging from trunk into branches and sometimes from branch to branch. Putting git over svn simply wasn’t viable. I don’t think it will be clumsy with the typical usage pattern of SVN at CrossWire. But we abandoned it pretty quickly, so I’m not sure.
6) Learning git can be easy. It also can be hard. It all depends on how the repository is managed and whether one has wrapped their mind around how git should be used. I don’t think the typical CrossWire use of a repository would make it hard.
I started on the command line. At first I found that GUIs did not work well. On Windows and Mac, I now use GUIs exclusively. My preference is SourceTree by Atlassian, which is entirely free. I also use Oracle’s SQLDeveloper (I do Oracle development for work) and Eclipse for IDEs with git integration. I’m sure that there are many other fine ones.
Hope this helps. BTW, the numbering is meaningless. No order is implied. No importance is implied. Take it for what its worth, my opinion based on a few years experience with GIT and more than a decade with SVN.
Together in His Service,
DM
> On Feb 25, 2015, at 4:17 PM, Troy A. Griffitts <scribe at crosswire.org> wrote:
>
> Anyone not on our sword-support mailing list, forwarded is a thread with a user suggesting tool to work with git on our server. We've talked about some of these already, but it seems like he has taken a good amount of time to reply and wanted to give his efforts exposure to all you guys.
>
>
> -------- Forwarded Message --------
> Subject: Re: [sword-support] Pull request and forum registration
> Date: Wed, 25 Feb 2015 18:00:05 -0300
> From: Albert De La Fuente <mail at albertdelafuente.com> <mailto:mail at albertdelafuente.com>
> Reply-To: SWORD Support Volunteers <sword-support at crosswire.org> <mailto:sword-support at crosswire.org>, mail at albertdelafuente.com <mailto:mail at albertdelafuente.com>
> To: Troy A. Griffitts <scribe at crosswire.org> <mailto:scribe at crosswire.org>
> CC: SWORD Support Volunteers <sword-support at crosswire.org> <mailto:sword-support at crosswire.org>
>
> Dear Troy,
>
> Thank you very much for your answer. I will separate my answer in two parts.
>
> The first part is regarding of git usage and learning curve, if you are using the terminal for such, you could setup aliases for that, for instance an alias "gitadd" for "git -u" (to add only modified files). I agree that the switches could be more intuitive. Another option is to have it integrated with your development environment or IDE, that might help you a lot! I tend to use it on the console. A git cheat sheet could help you, I just quickly google git commands for svn users and I found this [1]. I hope it helps. I'm confident that you will get used to it soon =)
>
> Regarding the second part, using github, I imagined that you might have that objection. The good thing about git is that you might have several "remotes" and push to several servers at once. In this way you could have "your own" sever and github as both remotes (or as many servers as you want). If you see a pull request worth including it you can accept it, you can review it first and get it from the appropriate remote, and then push back to both and all should be in sync. In that way you could use github as a read-only mirror sort of repo and take advantage of the features (and visibility) they offer. You could have separated repos on your internal IT infrastructure and github (i.e. within an organization).
>
> Other git related tools that worth looking into are: gitolite [2] used by some interesting players, according to their site, like Fedora, KDE, Gentoo and Kernel. Gerrit [3] a tool for code review. Gitlab [4] and Gitorious [5], both are opensource git web UIs which are very nice and have some github features. There is also a Gitorious docker image for easy installing [6].
>
> I installed gitosis once on my NAS but since I'm a single user at home I didn't really used it. I guess gitolite offers more fine-grained permissions, but is a guess though. Regarding the web UI, I guess Gitlab and Gitorious are your best options. Some of the features of Gitlab are on this SO answer [7].
>
> Also I found Fossil which is a packed solution for git + web UI [8]. Since the SWORD project is opensource, you could also request most (or any) of the tools from Atlassian which are very nice, and I think they could be hosted within your own IT infrastructure.
>
> I would personally try the following:
> 1) Try first having several remotes, it is the easiest solution, and if it works fine for you then you are good to go [9][10][11]
> 2) If not, then try the most active/popular from gitosis or gitolite (as backends) and the most active/popular from gitlab or gitorious (as web frontends).
>
> If you need help, please let me know.
>
> Best regards, and God bless you.
> Albert.
>
> [1] http://git-scm.com/course/svn.html <http://git-scm.com/course/svn.html>
> [2] https://github.com/sitaramc/gitolite/ <https://github.com/sitaramc/gitolite/>
> [3] https://code.google.com/p/gerrit/ <https://code.google.com/p/gerrit/>
> [4] https://about.gitlab.com/ <https://about.gitlab.com/>
> [5] https://gitorious.org/ <https://gitorious.org/>
> [6] https://gitorious.org/gitorious/gitorious-docker/source/799c49967663e0c379fc1b4089a2eb8fb7ceb072 <https://gitorious.org/gitorious/gitorious-docker/source/799c49967663e0c379fc1b4089a2eb8fb7ceb072>:
> [7] https://softwarerecs.stackexchange.com/questions/867/self-hosted-replacement-for-github <https://softwarerecs.stackexchange.com/questions/867/self-hosted-replacement-for-github>
> [8] https://www.sqlite.org/debug1/doc/trunk/www/index.wiki <https://www.sqlite.org/debug1/doc/trunk/www/index.wiki>
> [9] http://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes <http://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes>
> [10] http://stackoverflow.com/a/3195446/1332764 <http://stackoverflow.com/a/3195446/1332764>
> [11] https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes <https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes>
>
> Albert
> --- God's voice thunders in marvelous ways; he does great things beyond our understanding. ---
>
> On Wed, Feb 25, 2015 at 3:53 PM, Troy A. Griffitts <scribe at crosswire.org <mailto:scribe at crosswire.org>> wrote:
> Dear Albert,
>
> Thank you for the suggestion. Many other developers have also asked us to switch to using git. We take suggestions with value. The fact is that there are two different issues here: 1) git; 2) github. I have been using git almost exclusing with my SWORD development lately, through the svn-git bridge. I still don't like git as much as SVN. I don't use branches all the time while I am developing locally and it just seem nothing is intuitive and every default for a command is not what I would like as the default and have to provide unintuitive flags I can never remember. :) But I'm sure that's just my learning curve. I am trying though. Most people who wish us to switch to git are really asking us to switch to github. Github does provide a set of nice tools to allow collaboration. The drawback to this though is, just like sourceforge before it, github is an external organization and CrossWire has existed long before sourceforge and probably long after github. We wish to host our projects on our own server. We have been experimenting with gitosis on CrossWire, but this does not provide the nice collaboration tools that github offers. We'd love to hear if you have suggestions for what we might install on our servers to provide these collaboration facilities? In the mean time there are github mirrors of our SVN repository. Greg Hellings (whom you cite below) is our release manager for our stable branch and uses github extensively, so he should see any pull requests. And there is always the svn-git bridge if you simply like git better for your daily development over svn.
>
> Thank you again for the suggestion. I hope my reply gives you some insight into where we are with this. And thank you for the encouragement,
>
> Troy
>
> Â
>
>
> On 02/25/2015 09:58 AM, Albert De La Fuente wrote:
>> Dear brothers in Christ,
>>
>> In first place I want to thank you for your effort in the Sword project. I am a FLOSS enthusiast user and developer, and I found the fact of the project being open source a great advantage.
>>
>> I noticed that you use your own SVN and I would like to highlight that the mainstream FLOSS community uses git+github. I found several projects on top of Diatheke (hosted on Github), an example would be [1], one of them even propose a patch to add some great options do Diatheke, this patch has not been included into the SVN [2]. I don't know the reason for that, however if the project would be hosted as an organization on Github, probably those pull request would have been merged already. Furthermore, I think that other pull requests would be proposed.
>>
>> I would like to propose those changes [2] to be included in the main branch, so they might be available on a future release. I also would kindly suggest you to consider using a Github organization for the development of the Sword project. Each component could have its own separated repository (SWORD itself, Diatheke, python-sword, migration tools, etc).
>>
>> On the other hand I tried to register on the forum to post the content of this email there, but I after the forum rules I get a 404 error: The requested resource (/forums/mvnplugin/mvnforum/user/addmember.jsp) is not available.
>>
>> Thank you very much once again, and God bless you all.
>>
>> [1]: https://github.com/raphink/biblequote <https://github.com/raphink/biblequote>
>> [2]: https://github.com/greg-hellings/sword/pull/1/files <https://github.com/greg-hellings/sword/pull/1/files>
>>
>> Albert
>> --- God's voice thunders in marvelous ways; he does great things beyond our understanding. ---
>>
>>
>> _______________________________________________
>> sword-support mailing list
>> sword-support at crosswire.org <mailto:sword-support at crosswire.org>
>
>
>
>
> <Attached Message Part.txt>_______________________________________________
> server-admins mailing list
> server-admins at crosswire.org
> http://www.crosswire.org/mailman/listinfo/server-admins
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/server-admins/attachments/20150226/87ee7a23/attachment-0001.html>
More information about the server-admins
mailing list