Without this, the gzip filter would write the first bytes to the
response output stream, before the diff command is triggered and
potential exceptions may be thrown. When exceptions are thrown too late,
filters like the GZip filter may already have sent bytes to the response
stream. Afterwards this cannot be undone and the response created by an
exception mapper may not be valid anymore.
Due to the fact that the default branch is configured in HEAD, it will
be checked out by default by the clone in GitModifyCommand. Therefore
we won't have to do anything to "select" the default branch if no other
branch is specified.
Therefore we have to
- add an API to create stores for repository ids, not only for
repositories,
- make v1 properties available in scm-core
- make sure that properties are extracted from repositories before the
update step of a plugin runs (this is done by sorting the update steps
in a way so that "core" update steps are executed before plugin update
steps with the same version)
Generalize workdir creation for git and hg and create branches in
clones instead of the scm repository, so that hooks will be fired
correctly once the changes are pushed back.
Missing:
- Evaluation of the git response from the push command
- configuration of the hg environment and the authentication, so that
the scmhooks.py script can be triggeret correctly and can callback
the scm manager
Taking the git history example below, the previous version only computed
commits 'b3' upward for log of 'b' with ancestor 'master' and missed
commits 'b1', 'b2' and the first merge.
* 86e9ca0 (HEAD -> b) b5
* d69edb3 Merge branch 'master' into b
|\
| * 946a8db (master) f
| * b19b9cc e
* | 3d6109c b4
* | 6330653 b3
* | a49a28e Merge branch 'master' into b
|\ \
| |/
| * 0235584 d
| * 20251c5 c
* | 5023b85 b2
* | 201ecc1 b1
|/
* 36b19e4 b
* c2190a9 a