[jsword-devel] Git

DM Smith dmsmith at crosswire.org
Wed Apr 11 05:45:02 MST 2012


I'm looking at it now and have some first impressions.

First, excellent and much appreciated!

I am impressed with its size. A full checkout of head of the same from 
svn is twice the size and here we have the entire history of the code. I 
had expected it to be bigger. And the git clone over ssh is far faster 
than svn over http. I'm going to extrapolate that this will be better 
for those on unreliable connections.

The email for Joe, according to his request, should be @crosswire.org 
not @eireneh.com.

I think all the branches can be deleted. There were only two, from 2002. 
They were either merged into trunk or abandoned.

I think that these top level folders can be deleted:
     uml
     notes
     gener
     etc/abbot

All the .cvsignore files can be deleted.

The following pdf can be deleted:
     etc/osis/OSIS2_1_1UserManual.pdf

Everything with resource/toolbarButtonGraphics and resource/JLF-LICENSE 
starting the path can be deleted. These are an expansion of the jlfgr jar.

The entire top level jar folder can be deleted. It is retaining 
associated artifacts (e.g. licenses, readmes, ...).

There is history that is part of other projects in JSword that can be 
removed from this project (No particular order):
     Everything with */swing/* in the path. (These are part of the 
history of common-swing, bibledesktop or biblemapper)
     Everything with java/map* starting the path. (These are part of the 
history of biblemapper)
     Everything with */jsword/view/* in the path. (These are part of the 
history of bibledesktop)
     Everything with java/servlet* starting the path. (These are part of 
the history of jsword-web)
     Everything with doc starting the path. (These are part of the 
history of jsword-web)
     Everything with java/sword* starting the path. (These are part of 
the history of jsword-sword)
     Everything with etc/abbot starting the path. (These are part of 
jsword-support)
     Everything with java/historic, java/limbo or src/limbo starting the 
path. (These are part of the history of jsword-limbo)
     Everything with tools starting the path. (These are a part of 
jsword-support)
     Everything with resource/images starting the path. (These are part 
of bibledesktop)
     Everything with java/common/org/crosswire/common/resource starting 
the path. (These are part of common-swing)
     Everything with resource/xsl or resource/xml starting the path. 
(These are part of bibledesktop and jsword-web)
     Everything with resource/map* starting the path. (These are part of 
biblemapper)
     Everything with java/jsword/docs starting the path. (These are part 
of jsword-web)
     Everything with etc/web starting the path. (These are part of 
jsword-web)
     Everything with etc/jnlp, etc/bin, etc/install or etc/desktop 
starting the path. (These are part of bibledesktop)
     Everything with bin starting the path. (These are part of bibledesktop)

All together:
git rev-list --objects --all | egrep "(( 
(java/(map|servlet|sword|historic|jsword/docs)|resource/(images|tool|JLF|xsl|xml|map)|etc/(jnlp|bin|web|desktop|abbot|install)|gener|jar|notes|uml|web|doc|tools))|(.pdf|.cvsignore|limbo|swing|jsword/view|common/resource))"

I've a few more things to look at: build, package, ide, ....

In His Service,
     DM Smith

On 04/09/2012 03:46 AM, Douglas Campos wrote:
> Ah, forgot this:
>
> 1st tentative migration (jsword module only) =>   https://github.com/crosswire/jsword
>
> feedback is a must!
>
> Blessings
>
> -- qmx
>
> On Apr 9, 2012, at 4:19 AM, Douglas Campos wrote:
>
>> Now the biggest size offenders are: (inside jsword/)
>> oasis pdf's (do they need to live on the repo?)
>> projectb-ser-av.zip
>> *.lser
>>
>> a bunch of stuff (images) from the times where "web" lived under jsword/ folder
>>
>> Suggestions?
>>
>> On Apr 6, 2012, at 3:26 PM, DM Smith wrote:
>>
>>> I'll send you what I have and copy the others so that they can give you a better one if they wish.
>>>
>>> I've contacted kralston via sourceforge, where jsword was originally hosted, and am waiting for an answer.
>>>
>>> In His Service,
>>> 	DM
>>>
>>> On Apr 6, 2012, at 1:51 AM, Douglas Campos wrote:
>>>
>>>> Hi!
>>>>
>>>> To go on with the migration, I need the full names/ emails for these svn usernames
>>>>
>>>> Git keeps ownership like this =>  Douglas Campos<qmx at qmx.me>  <=
>>>> (pseudonyms are fine too)
>>>>
>>>> (no author)<<<  who wins the prize?
>>>> ChrisBurrell
>>>> dmsmith
>>>> joe
>>>> kralston
>>>> markg
>>>> mjdenham
>>>> refdoc
>>>> root<<<  the same
>>>>
>>>> I've created the crosswire organization on github (github.com/crosswire), where I'm storing the intermediate passes of the migration.
>>>>
>>>> Blessings
>>>> -- qmx
>>>>
>>>> On Apr 3, 2012, at 3:39 PM, DM Smith wrote:
>>>>
>>>>> Well 27M is do-able but if there is a way to make it skinnier, so much the better.
>>>>> I've done some digging into the JSword history and it might be a bit helpful in determining a good course of action.
>>>>>
>>>>> We started formal releases with 0.9.6. Until release 1.0 we tagged these in SVN. Then for release 1.0.5 we tagged it, improperly as 1.0.6. I've never really worried about tagging in SVN, because it is so easy to dig into history and do a checkout at any revision number. When we go to GIT, I'd like these to be properly tagged. Here is the information:
>>>>> 1.6 - r1923 - 29 Jul 2008 - not tagged
>>>>> 1.0.7 - r1483 - 8 Jul 2007 - not tagged
>>>>> 1.0.6 - r1272 -  31 Mar 2007 - not tagged
>>>>> 1.0.5 - r1193 - 2 Dec 2006 - tagged at r1193 as VERSION_1_0_6
>>>>> 1.0.4 - r1129 - 27 Aug 2006 - not tagged
>>>>> 1.0.3 - r1110 -  24 Jul 2006- not tagged
>>>>> 1.0.2 - r1082 - 10 Apr 2006 - not tagged
>>>>> 1.0.1 - r1019 - 1 Mar 2006 - not tagged
>>>>> 1.0.0 - r816 - 15 Jan 2006 - tagged at r817 as VERSION_1_0_0
>>>>> 0.9.9 - r704 - 25 May 2005 - tagged at r705  as VERSION_0_9_9
>>>>> 0.9.8 - r586 - 28 Aug 2004 - tagged at r580 as VERSION_0_9_8
>>>>> 0.9.7 - r425 - 5 Apr 2004 - tagged at r420 as VERSION_0_9_7
>>>>> 0.9.6 - r346 - 5 Nov 2003 - tagged at r344 as VERSION_0_9_6
>>>>>
>>>>> The reason to go through all this is that splitting the repository according to current SVN/Eclipse project layout may be problematic: Over time we have refactored the layout of the code.
>>>>>
>>>>> Initially all the code was under trunk/jsword.
>>>>> In r265, jsword-support first saw existence.
>>>>> At r386, biblemapper was created. These were under org.crosswire.jsword.map.
>>>>> Starting with r436, bibledesktop was created. These were org.crosswire.jsword.view, but now org.crosswire.bibledesktop.
>>>>> Starting at r441, common was created, containing org.crosswire.common, including view code. Later view code would be in its own home.
>>>>> With r443, old code was moved to jsword-support/java/historic. Later historic code would have its own home.
>>>>> With r444, jsword's original implementation of the sword api was moved to jsword-sword.
>>>>> With r445, jsword/web was moved to jsword-web.
>>>>> R505 introduced bibledesktop-web.
>>>>> Starting with r891, common-swing was created, holding view code from common.
>>>>> R958 introduced jsword-limbo as a repository of old code.
>>>>> R1201 introduced incubator.
>>>>> Starting with r2012, common was merged back into jsword.
>>>>> Starting with r2015, consolidate resources and move them into src/resources. This was within projects.
>>>>>
>>>>> svn ls -rXXX is useful to see what is at these points.
>>>>>
>>>>> It might be useful to have tagged these events.
>>>>>
>>>>> Overview of top level folders (aka projects) is documented on the web, but here they are again.
>>>>> JSword projects:
>>>>> jsword -- All code that one can use for making a program based upon JSword.
>>>>>
>>>>> jsword-support -- contains QA tooling such as checkstyle, findbugs, cpd, jdepend, .... Previously held unused code. This is tremendously useful in ensuring code is of high quality. I don't think history of the build tools is at all interesting.
>>>>>
>>>>> jsword-web -- The JSword website, the jsword build and packaging (tar.gz, zip). I think that packaging (nightly and release) is critical, but it's history is not.
>>>>>
>>>>> common -- model code now contained in jsword; view code is in common-swing. No longer exists.
>>>>>
>>>>> Bible Desktop projects:
>>>>> common-swing -- Code that other swing projects could use and that BibleDesktop is currently the only user.
>>>>>
>>>>> bibledesktop -- A JSword desktop application, build and packaging (for Mac and Windows)
>>>>>
>>>>> bibledesktop-web -- The Bible Desktop website. Does not contain build or packaging.
>>>>>
>>>>> Other projects:
>>>>> jsword-limbo -- contains unused code, but possibly useful. We will be grabbing the FTP code from here to put back in JSword.
>>>>>
>>>>> biblemapper -- A distinctive, working application based upon JSword. Never released.
>>>>>
>>>>> incubator -- An attempt to migrate JSword to an OSGI framework. Never went anywhere.
>>>>>
>>>>> Hope this helps.
>>>>>
>>>>> In Him,
>>>>> 	DM
>>>>>
>>>>> On Mar 30, 2012, at 10:40 PM, DM Smith wrote:
>>>>>
>>>>>> I'll give some tomorrow. I'm traveling now.
>>>>>>
>>>>>> Cent from my fone so theer mite be tipos. ;)
>>>>>>
>>>>>> On Mar 30, 2012, at 10:25 PM, Douglas Campos<qmx at qmx.me>  wrote:
>>>>>>
>>>>>>> Not bad!
>>>>>>>
>>>>>>> the first test (stripping all the generated assets (*.{jar,exe,zip,dmg})
>>>>>>>
>>>>>>> from 480MB to 27MB (it didn't got smaller because of assets like illustrator designs / big png files / oasis pdfs, etc)
>>>>>>>
>>>>>>> Thoughts?
>>>>>>>
>>>>>>> On Mar 30, 2012, at 10:19 PM, Douglas Campos wrote:
>>>>>>>
>>>>>>>> On Mar 30, 2012, at 10:12 PM, Trenton D. Adams wrote:
>>>>>>>>
>>>>>>>>> On 12-03-30 05:10 AM, Matěj Cepl wrote:
>>>>>>>>>> On 29.3.2012 21:14, Trenton D. Adams wrote:
>>>>>>>>>>> Git automatically takes svn layouts, and changes them to fit git. I
>>>>>>>>>>> don't recall exactly how I did it, but I believe it was "git svn clone"
>>>>>>>>>>> with the --stdlayout option, and use the base repo (not trunk).
>>>>>>>>>> That works only with the standard branches/, tags/, trunk/
>>>>>>>>>> subdirectories, not with JSword having multiple projects (bibledesktop/,
>>>>>>>>>> javatar/, jsword/, common-swing/, etc.)
>>>>>>>>> Is the intention to separate those out then into separate git repos? that may actually make some sense, but I fear it would create more difficulty in managing the release cycles.  It's been awhile since I looked at the svn repo, but I had thought that there was a trunk, with all those folders you mentioned underneath the trunk?
>>>>>>>> Yeah, separating is mostly the best way to go, and it isn't a problem for releases, as we in fact have more than one project to manage - you still need to deal with each one separately, even if they are on the same repo.
>>>>>>>>
>>>>>>>>>> --ignore-paths looks much more interesting.
>>>>>>>>>>
>>>>>>>>>> Matěj
>>>>>>>>>>
>>>>>>>>>>




More information about the jsword-devel mailing list