Faculty of Information Technology
Software Engineering Group

#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:

  1. Sort detected repositories by distance from compiled file,
  2. check that no two repositories detected are at the same level. If yes, then report error, it not
  3. use the "nearest" one as the SCM for currently compiled code.

This issue is blocking #89 and #90

Change History (1)

comment:1 Changed 18 months ago by Jan Vrany

Resolution: fixed
Status: newclosed

Fixed as hinted above in:

  • e0d88e6ddad8: Issue #93: Updated documentation for git_repository_lookup() and hg_repository_lookup()
  • 3a729bc8910e: Issue #93: Use single struct type scm_t to hold required data about used SCM
  • 2e5a5760bed7: Issue #93: Use the "closest" SCM when using -scmType: auto
Note: See TracTickets for help on using tickets.