Opened 7 years ago
Closed 7 years ago
#93 closed defect (fixed)
stc does not handle CVS-under-Mercurial working copies
Reported by: | Jan Vrany | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | |
Component: | stc | Keywords: | |
Cc: | Also affects CVS HEAD (eXept version): | yes |
Description
Consider a following build directory structure:
stx_build (hg repository/working copy) .hg ... build stx libui (CVS working copy) AssistantPageSpec.st CVS ...
Then {{{stc}} would (incorrectly) report
(svn:0 cvs:1 p4:0 git:0 hg:1)AssistantPageSpec.st, line 29: Error: '-scmType: auto' specified and multiple version management systems detected!
This is because it does not check whether the Mercurial repository
found in top-level build root (stx_build
in the example above) if "further away" then the CVS working copy (in libui
).
The "correct" algorithm seems to be to:
- Sort detected repositories by distance from compiled file,
- check that no two repositories detected are at the same level. If yes, then report error, it not
- use the "nearest" one as the SCM for currently compiled code.
Note: See
TracTickets for help on using
tickets.
Fixed as hinted above in:
git_repository_lookup()
andhg_repository_lookup()
scm_t
to hold required data about used SCM-scmType: auto