[Lazarus] Git mirror of Lazarus SubVersion repository is available

Reenen Laurie rlaurie at gmail.com
Thu Apr 9 17:17:56 CEST 2009

Windows users?

I am downloading TortoiseGit  (http://code.google.com/p/tortoisegit/)
as we speak, and will try to get the latest 10 revisions :-)


On Thu, Apr 9, 2009 at 2:14 PM, Graeme Geldenhuys
<graemeg.lists at gmail.com> wrote:
> Hi Everybody,
> A while back I setup a private Git mirror of the Lazarus SubVersion
> (trunk only) repository. This was for my personal use. Since then I
> thought others might enjoy a Git mirror as well. Seeing that our
> company has limited internet bandwidth I decided to move the mirror
> repository to a more public place. The Git mirror is hosted on
> GitHub at the following URL and is sync'ed with Lazarus
> SubVersion trunk every 15 minutes.
>   git://github.com/graemeg/lazarus.git
> The Lazarus Trunk (exact duplicate) is mirrored in
> the 'upstream' branch which I'll explain shortly.
> I just completed a repository clone from GitHub to make sure
> everything is working properly. The whole history of Lazarus (trunk)
> gets downloaded by default and is just 57MB!! With the testing I
> done locally, that is even less than SubVersion's 'svn co ..../trunk'
> which only gets ONE revision!
> To clone Lazarus Git repository with full history
> -------------------------------------------------
>   $ git clone git://github.com/graemeg/lazarus.git
> ...this will download 57MB of data and unpack to
> around 144MB on your hard drive. This has the whole history
> of Lazarus. A checkout via SubVersion of only the trunk revision is
> over 320MB - more than double what Git is with full history.
> To clone only partial history of Lazarus Git repository
> -------------------------------------------------------
> Lets say we want only the history since the last 10 commits.
>   $ git clone --depth 10 git://github.com/graemeg/lazarus.git
> ...this will download 14MB of data and unpack to around 96MB
> on your hard drive. You will now only have the last 10 commits
> as your history.
> Considering that the Lazarus source code alone is 82MB in
> size (excluding all the hidden .svn directories), Git gives you
> a pretty sweet deal!  ;-)
> About that 'upstream' branch
> ----------------------------
> Because I'm mirroring the Lazarus svn repository (GitHub considers
> it as a fork), I want to make sure I always have a pristine copy
> of what is in SubVersion. That's what the 'origin/upstream' branch
> is all about. The default 'master' branch is my playground and
> might contain my customized version of Lazarus (something like
> my private fork though it will probably never get used or updated
> much).
> So for you to work with the original upstream version of Lazarus
> (the one that lives in SVN trunk) you need to do the following:
>     $ git checkout -b work origin/upstream
> ...this creates a new branch called 'work' which tracks the
> original SVN trunk branch and also allows you to create your
> own custom changes or bug fixes. That's the one MOST users would
> want!
> Now to keep up to date with what's happening in SVN trunk, git
> 'upstream' branch, you simply need to run the following git command
> to update your local repository.
>    $ git pull
> The nice thing about Git's merge is that if you created a patch and
> it was later included in Lazarus's SVN trunk (assuming it's applied
> verbatim), it will filter through to 'upstream' and then filter
> into your 'work' branch. Git is supposedly smart enough to realize
> that it's the same change you have locally and keep things nice and
> tidy. Else you can force a merge and trash your local changes.
> If you want to make local changes like bug fixes (after all, we do
> love to help the core developers out) and you want to submit those
> patches to the mailing list or to Mantis, you would have the following
> workflow.
>    $ git pull                (make sure we are up to date with SVN)
>    $ (edit..edit..edit)      (create a bug fix)
>    $ git add <filename>      (stage the file for next commit)
>    $ git commit -m 'describe what I changed'
>    $ git format-patch HEAD^..HEAD
> or replace the last line with
>    $ git log -1              (to see the last commit message and SHA1)
>    $ git format-patch -1 <commit_SHA1>
> ...You will now have a numbered patch file which you can attach to an
> email or submit via Mantis. If you specified a larger revision range
> you will have multiple patch files in order which you can submit to
> Mantis.
> For more info on any git commands simply type:
>    $ git help <command>
> eg:
>    $ git help format-patch
>    $ git help commit
>    $ git help add
> Or go to the Git website where there are plenty of tutorials,
> downloadable PDF books etc..
>       http://git-scm.com/
> Hope you enjoy!  :-)
> Regards,
>  - Graeme -
> _______________________________________________
> fpGUI - a cross-platform Free Pascal GUI toolkit
> http://opensoft.homeip.net/fpgui/
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus

,_.>/ _
...speed is good
I believe five out of four people have a problem with fractions.

More information about the Lazarus mailing list