[Sugar-devel] g.sl.o issues for Karma and perhaps other activities

Bernie Innocenti bernie at codewiz.org
Sun Jan 3 15:46:04 EST 2010


On Sun, 2010-01-03 at 08:29 +0545, Bryan Berry wrote:

> 
> I am wary of experimenting when the gslo infrastructure is still in
> flux. I would rather stick w/ gitweb or cgit and then move to whatever
> becomes of gslo. Should we start w/ cgit or gitweb?
> 

An alternative to installing a local multi-repository interface just
occurred to me.

To solve the data transfer issue, git offers a pletora of
bandwidth-saving options. One possibility is to let the Nepali
developers clone from each other's repository:


 git clone --reference officemate.local:~bryanwb/src/karma \
    git://git.sugarlabs.org/karma/mainline.git karma


Alternatively, you could rsync the files to your local machine:

  rsync -aP officemate.local:~bryanwb/src/karma/.git karma-ref.git
  git clone --reference karma-ref.git \
      git://git.sugarlabs.org/karma/mainline.git karma

It doesn't matter if the reference repository contains unwanted changes
or hasn't been updated for a while. Any good bits will be reused, and
the rest will be fetched remotely.

Other tips:

 * Never use the http protocol, as it is quite inefficient.

 * try passing the --thin option when you pull. The server-side
   will work harder to minimize file transfers.

 * Another way to speed-up initial cloning is to limit the number
   of revisions with --depth. It's usually not a big deal, unless
   your history contains lots of large files that were subsequently
   deleted.

 * If your history contains plenty of similar files, for example
   PNGs that have been merely moved around, you'd benefit by
   repacking your repository with larger --window and --depth
   parameters. You could repack locally and, when you're happy
   with the result, push it to Gitorious with "git push --mirror".

 * If your history is badly messed up, you may "edit" it locally
   with a combination of the advanced git operations such as
   "git rebase --interactive", "git reset --hard" and
   "git commit --amend". When you publish the resulting edited
   history, people who had previously cloned from you will have
   to refetch. Needless to say, git's arsenal of history-rewriting
   commands is as dangerous as it is powerful.
 
 * the git:// protocol is probably slightly faster than using the
   ssh tunnel. You can easily switch between the two using
   "git remote ..." or by editing .git/config manually.

Free git advice is available from me on #sugar, GMT-5 office hours.
Next business day, on-site support contracts available on demand.
Git is a registered trademark of Stupid Version Control Systems, Inc.

-- 
   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs       - http://sugarlabs.org/



More information about the Sugar-devel mailing list