Difference between revisions of "Contributor's Guide"

From Morevna Project Wiki
Jump to navigationJump to search
(Rough draft, some notes)
 
(Defining a project directory structure)
Line 1: Line 1:
 
So, you about to contribute to Morevna Project? That's great!  
 
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.
+
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|main page]]. There you could track a progress made on particular tasks, watch which isn't reflected on this blog. There you could find some concept documentation you need to get familiar with.
  
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 guide you into the depths of this amazing-time-killing-machine.  
  
If you want to dig into project a bit deeper, let me tell  you how this huge-amazing-time-killing-machine works.
+
So what do we have at the base of all this stuff? A [[Screenplay|screenplay]]. Yep, the main thing. And, my bad, it is still not translated into English! Maybe thats the point where you could help?
  
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 need to read a screenplay. Just know what it is exists. Oh, yeah, it is exists and we splitted it into parts which we call "scenes". Each scene is a significant and relatively independent 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.
  
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).
+
For the project directory tree we have following structure defined by screenplay:
  
Each scene in our screenplay is referred by number, which assigned according the order of the scenes.
+
[[Image:Project structure 01.jpg]]
 +
 
 +
The animation sources of every scene we store in separate directory with corresponding number.
 +
 
 +
Project directory tree is stored in the git repository. It is currently in private mode, so you should request an access to it first to be able to work with production files. To request the access just contact the team.
  
 
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.
 
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.  
+
Ok, so our working scene is demo.
  
 
$ mkdir morevnaproject
 
$ mkdir morevnaproject
Line 39: Line 43:
  
 
(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).
 
(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:
 
Revert:
Line 53: Line 56:
 
then in each subproject directory do 'git checkout master', i.e.:
 
then in each subproject directory do 'git checkout master', i.e.:
 
cd demo && git checkout master
 
cd demo && git checkout master
 +
 +
It is planned with a storyboard. Storyboard is divided into shots.
  
 
Note: Always push submodules before production!
 
Note: Always push submodules before production!

Revision as of 11:35, 12 December 2008

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 made on particular tasks, watch which isn't reflected on this blog. 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 guide you into the depths of this amazing-time-killing-machine.

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 need to read a screenplay. Just know what it is exists. Oh, yeah, it is exists and we splitted it into parts which we call "scenes". Each scene is a significant and relatively independent 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.

For the project directory tree we have following structure defined by screenplay:

File:Project structure 01.jpg

The animation sources of every scene we store in separate directory with corresponding number.

Project directory tree is stored in the git repository. It is currently in private mode, so you should request an access to it first to be able to work with production files. To request the access just contact the team.

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.

$ 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

It is planned with a storyboard. Storyboard is divided into shots.

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