Version control "best practice"

I read all the questions here on the topic of version control, but I don’t think I found a script that looks like my own.

Scenario:

we have a medium and large web application that (at least should have) a kernel that is deployed to all clients. When we do demos of the application for clients, almost all of them request changes in the layout or data in lists or fields in data entry forms, etc. Almost all of these changes require changes in the remaining “layers” of the application.

In our current situation, we use CVS (with tortoiseCVS), and we do not use branches, we use tags to distinguish between application code changes (yes, I know, this is pretty bad). This brings a lot of problems when we want to make a release to a specific client, as well as make changes, etc. To prepare the release, it takes about 1-2 days of work, and sometimes it still breaks.

Sometimes a request from a client is also included in the kernel for distribution to all clients.

So my question is: are branches the best way to isolate changes to client versions of an application? Should we roll out every time a new client asks for customization? Or should we consider it as a completely different project with a different repository?

All different versions must be saved, and since I heard that branches are "temporary", I have doubts that branching is the best solution.

Thanks for the answer.

Antonio Diaz

+5
source share
6 answers

I don’t know why you think the branches are temporary - they will exist as long as you want it.

Your application sounds as if it could benefit from a restructuring in order to implement more modular functionality, but in the meantime you can develop core functionality as a trunk, with each client version becoming its own branch.

. , , .

, .

+4

, , . , ( , , factory).

, ( ), , , . ( , ) , , , ( ). , , , ... .

, "--" .

+4

, , , - , . , . , :  - ,  - - (, ). ,  - - , "named snapshot". , - , , , . , . , , . ,

+3
Feature Branching is a poor man modular architecture, instead of building systems with the ability to easy swap in and out features at runtime/deploytime they couple themselves to the source control providing this mechanism through manual merging. 

- -

- , , .

+2

, , .

, , , . - , / , . , - ( , ..). , .

. , , /.

? ( ).

/, . / .

+1

" " ( ), . < > "" , . :

 cvs tag -r MY_TAG -b MY_BRANCH

.

UAT ( ), . :

  • ,
  • .
  • , , UAT. , .

, , : , , , , .

0

All Articles