On 03/13/2012 08:40 AM, Vincent van Ravesteijn wrote:
You, the lyx developers, have to agree on process, but the git repo
has been open for writing since sunday evening.
I propose the following:
I don't disagree with any of what is below, but I guess I'd prefer to
see us move more slowly. Many people are going to have to get used to
using git locally, on their own machine, and making too many changes to
the workflow now, while people are just trying to figure out how to use
git at all, makes even me feel overwhelmed. So, for the first couple
months, I'd suggest we start using git, but pretty much the way we've
been using svn. And then, when people are comfortable with that, then we
start introducing a new way of working. So far as I can see, there is no
disadvantage to doing this, and the advantage is substantial: It eases
the learning curve for everyone.
Richard
Goal:
Do not merge any new features into lyx.git until
- they are truly finished,
- well commented and understandable by others,
- have good commit messages,
- there are no more doubts by other developers,
- the style and cosmetics are ok,
- they have been tested,
- (all automatic tests are fullfilled or tests have been created, if
we ever do have tests).
This means history can get rewritten until it appears in lyx.git.
Repos and Branches:
* developers/<developer>/personal.git or local git clone: Developers
develop based on the trunk-stable or 2.0.x branch.
git checkout -b <developer>/my-feature trunk-stable
or
git checkout -b <developer>/my-feature 2.0.x
* lyx-staging.git: Developers pull/push their feature branch into/to
this repo.
git remote add lyx-staging g...@git.lyx.org:lyx-staging.git
git push lyx-staging my-feature
Either a feature is merged with trunk-devel by the developer, or it
will be done automatically, or by a maintainer (who just runs the
script manually and checks that things don't go wrong until everyone
is comfortable with the workflow).
No direct commits onto trunk-devel are allowed. This trunk-devel
branch represents the bleeding edge repo. Do not base your work onto
this branch, because history might be rewritten. If your features
depends on another feature, base your feature onto that feature and
indicate this.
git checkout -b developer/my-feature
other-developer/depending-feature
* lyx.git: From time to time, features will get merged into or rebased
onto the trunk-stable and/or 2.0.x branch in this repo. This repo
consists only of long-lived branches.
I think this is how me and Abdel want to see the workflow ? Any other
comments or questions ? Please do ask any git related questions as
well when unsure.
If not, Lars, can you create a lyx-staging.git repo and give access to
all developers. And maybe restrict access to lyx.git to the
maintainers to prevent accidental commits (at least until everyone is
used to the process).
Now it is the time to agree on the basic structure of the workflow.
Vincent