Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] using git for grimoires

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: "Jeremy Blosser (emrys)" <jblosser-smgl AT firinn.org>
  • To: SM Discuss <sm-discuss AT lists.ibiblio.org>
  • Subject: Re: [SM-Discuss] using git for grimoires
  • Date: Fri, 7 Apr 2006 15:21:34 -0500

On Apr 07, David Brown [dmlb2000 AT gmail.com] wrote:
> Since I've had several questions about using git scm (the scm that the
> linux kernel uses) for the grimoires heres the way I could see us
> using it and how things would change from the current system. Most of
> the steps I deal with are using pure git if you use cogito some steps
> may be simplified or removed.

I'm looking into it some right now as well, a few comments based on what
I'm seeing, but correct me if I'm wrong... (Note: git appears to have
*excellent* documentation.)

> the new steps to commit using a git repo would be the following:
> 1) hack hack hack
> 2) update index to encaplulate the commit
> 3) commit the files
> 4) repeat 1-3 until happy
> 5) pull the changes from your grimoire to the public grimoire.
>
> step 5 could include asking certain TL's to pull the changes to the
> public grimoire or if you have permissions ssh'ing in to the main
> system and then pulling from your grimoire to the public one.

Note that git has also added a push command now that lets you do the last
piece without having to manually login to the remote server and do a pull
(if you have permission). Permissions are granular enough to let
individual people commit to individual branches.

The commands for this might look like:

$ git clone http://scm.sourcemage.org:smgl/grimoire local-test
$ cd local-test
hack hack hack
$ git commit
repeat until happy
$ git push test
^ this last pushes your commits back to the public test branch of the
grimoire

I really think this would be the most likely way we'd use it, so Grimoire
people please focus on that when thinking about and discussing potential
workflows. Other stuff is probably extra; we could make use of it if we
wanted to but wouldn't have to.

> There would also be an alternative path as well:
> 3) perform a diff on the head
> 4) email the diff
>
> step 4 would be to someone who has permissions to edit the public
> grimoire or the ml where some one with those permissions would then
> apply the patch.

I think this kind of thing would make it a lot easier for us to get new
people involved as 'apprentices' or the like. It looks like git has
internal commands for creating these diffs and emailing them, and for
reviewing, accepting, and committing them on the other end.

> ==== Pros of Using git ====
> 1) No internet access needed until you want your changes pulled to the
> public grimoire :DDD
> 2) decentralized repos, since everyone (including users if they use
> git to pull their grimories to use on their system) would have a copy
> of the repository and all it's history, so changing the DNS to point
> to someone else temporarily would be easy and many people could do it.
> 3) making small diffs for general updates of spells would be quicker (I
> think).
> 4) git-diff is and has always been relative to the root of the
> grimoire no fscking with the -p value on patches using git, it's all
> standardized.
>
> ==== Cons of Using git ====
> 1) Depending on how permissions for the publicly accessed grimoires
> are handled our TL's could have more work to do. Either Arwed would
> have to do this solo or he would have to choose people for a 'super
> guru' set that would have permission to pull from other guru's
> grimoires.

Not required using git push.

> I would advise not giving everyone permissions to the public grimoire
> because I'm not sure if a git pull can manage blowing over several
> files at once... haven't tried it.

I would expect that the push command would have to be smart about this even
if the pull isn't, or corruption would be guaranteed. It uses a separate
daemon for it. We could run tests on it to see.

Attachment: pgpoA2h5BkJdY.pgp
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page