I saw a lot of tips about the Git workflow, but it was not very helpful to us. I would like some advice regarding our situation.
We are a very small website development company from Russia. Many of our orders are small websites for businesses or events. This adds some features to our workflow.
- "release" or "version" does not make sense.
- Most changes need to be done very quickly: get an error or improvement message / implement / look at the local machine / deploy / check again if something is wrong.
- At the very beginning, there is no polished concept of a concrete “function”. Developers get a waterfall of source documentation, layouts, html layouts and emails about the quick changes falling on their head. (And yes, this is normal for these projects, which are extremely small and need to be changed very quickly, in the speed of reloading the page). Of course, we use tickets to Redmine and all this, but it is very difficult to use a separate branch for each additional function and even try not to add two or three small pages / improvements in one commit.
- In most cases, only two or three people work on a website. One of them writes only HTML / CSS / JS, the other one or two write Python code (Django). Their responsibilities are unlikely to overlap; I have never seen a single problem using only one branch for development.
- There is no such thing as a test server (except for those on the local machine of each developer). We use test servers for large projects, but now I'm not talking about them.
- We are not against tests, but the culture of using TDD is very young here.
- Work on one website is completed in a month or two, after which we make only small improvements or fix small errors, and we do this quite rarely.
So it looks like this:
- Developers receive an urgent task (or several) or choose one or two of the ticket systems.
- .
- "hg pull -u"
- "hg commit"
- "hg push"
- ( , 3-6 fabfile.py. , )
- (, , , ).
, . , . . ( , , ).
" " , . - "" , . , , -.
, ? , . .
, :