Mercurial: indicates that a branch has passed testing?

I am working on creating a workflow in my company if we are to switch to DVCS (most likely Mercurial). One of the things I would like to do is to have storage for QA. The idea is that each developer works on a branch, and when they are executed, the branch is translated into QA. From there, the test team can perform its testing and report any errors. After the branch is fully tested and acceptable, it will be transferred to the intermediate repository, where it merges with the main line, before moving to the central repository.

This can work quite easily if someone simply conveys the status of their work in some way, but I know that this does not always happen the way you would like it to. I'm worried that the branches in QA repo are waiting, but no one knows if he is waiting for testing, is currently testing, waiting for corrections, waiting for him to be moved to an intermediate zone, etc. So I'm looking for ideas how status can be added to a branch? It would also be useful to do this so that we can use hooks to also notify people of status changes.

Any ideas would be appreciated.

+4
source share
5 answers

Unfortunately, it seems to me that you need a different system to track this part of your workflow.

The repository consists of things that all willy nilly should not change, but the current status of Q & A will change as necessary orthogonally to the contents of the repository.

Let me rephrase that. You have 10 sets of changes in the Q & A repository, ready for testing. Exactly what each tester will focus on, the state of each test, etc., Even if these 10 changes remain unchanged.

I would definitely try to use the autoload system, in which you can somehow integrate the repository history, even if it is just to connect the problem in the system with its set of changes.

I notice your comment that I do not get support for buying Kiln, but there are other systems that you must be able to integrate, which will give you something similar.

I would very much resist trying to push Mercurial that it was not created for support, trying to use tags for this will fail, and bookmarks can give you problems, as you already noted.

So, try to find a separate system for monitoring the status of Q & A.

+5
source

One simple method may be to save the metadata file in the root repo folder with the name .teststatus or somesuch, which looks like this:

 # branch-name, last passed revision default, 0123456789ab stable, 0123456789ac bobs-dev-branch, 0123456789ad marys-dev-branch, none 

Using tags or bookmarks will look like something like abuse. You cannot use the same tag for branches (for example, passed must be stable-passed ), and the tags do not move at all. Bookmarks, on the other hand, are meant to be moved, but you still have problems with branch names.

+1
source

Joel Spolsky, one of the founders of this site, releases a program called FogBugz , which is integrated with Mercurial and makes it easy to track everyone’s status.

0
source

I'm not quite sure how your workflow works, but here are a few ideas:

Perhaps you can use the inbound hook to automatically notify you of new changesets being added to the QA repository.

0
source

Why did the developer push something into the QA repository if it was not ready for QA'd? I think that the action of pushets changesets in the repository, indicated by QA, should be a signal that the function is ready for testing.

The clone branch feature is my favorite approach.

0
source

Source: https://habr.com/ru/post/1336018/


All Articles