Contributor's Guide

From Morevna Project Wiki
Revision as of 07:19, 12 December 2008 by KonstantinDmitriev (talk | contribs) (Rough draft, some notes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

So, you about to contribute to Morevna Project? That's great!

How you could help? First of all, let me invite you to the wiki. There is always a lot of pending tasks at the main page. There you could track a progress of particular tasks, and watch which isn't reflected on this blog.

Also there you could find some concept documentation you need to get familiar with.

If you want to dig into project a bit deeper, let me tell you how this huge-amazing-time-killing-machine works.

OK, so what do we have at the base of all this stuff? A screenplay. Yep, the main thing. And, my bad, it is still not translated into English! Maybe thats the point where you could help?

Well, ok, some concepts could be explained without existing screenplay. Just know what it is exist. Oh, yeah, it is exists and we splitted it into parts which we call "scenes". Each scene is a significant part of the story, where a particular sequence of particular actions happening in particular place (or places).

Each scene in our screenplay is referred by number, which assigned according the order of the scenes.

There is a scene, what currently have a special status - it is a scene 04. It is special, because it is almost exact equivalent of Morevna Project Demo, which we currently working on. So, Morevna Project Demo could be considered as a scene too.

Ok, so our working scene is demo. It is planned with a storyboard. Storyboard is divided into shots.

$ mkdir morevnaproject $ cd morevnaproject

Currently there are two repositories available - "production" and "demo".

Production is a superproject which contains shared data for the all parts of the project. Generally it is impossible to work on particular part of the project without having a production repository fetched first. So let's clone it:

git clone ssh://user@127.0.0.1/home/zelgadis/projects/morevna/git/production.git/

cd production/ git submodule init

now fetch a modules. Currently it has just one module - demo. To fetch it issue following commands:

git can not clone into existing dir, so let's remove empty demo directory $ rmdir demo

...and then clone a repository on it's place

$ git clone ssh://user@127.0.0.1/home/zelgadis/projects/morevna/git/demo.git

(Empty directory is a placeholder for submodule, so it's undesirable to remove it from production repository forever - 'cause git treat this action as removing a module).


Revert: git checkout tag_name git submodule update demo

Note: if you just pass 'git submodule update' it will fetch all modules which wasn't fetched and update all modules to correspond current superproject revision.

Return to work: git checkout master git submodule update demo

then in each subproject directory do 'git checkout master', i.e.: cd demo && git checkout master

Note: Always push submodules before production!

Error to updte: To ssh://user@git.tuxfamily.org/gitroot/morevna/demo.git

! [rejected]        master -> master (non-fast forward)

error: failed to push some refs to 'ssh://user@git.tuxfamily.org/gitroot/morevna/demo.git'

> git fetch

I want to work on an upstream branch other than "master"

$ git checkout --track -b <local name> origin/<remote name> Note: this creates a local branch <local name> based on the upstream branch and switches your working copy to that branch. $ git pull $ git push origin <local name>

Switching origin

git remote rm origin git remote add origin ssh://127.0.0.1/home/zelgadis/projects/morevna/git/demo.git/ git fetch