Changeset 680 for CMT/v1r25-branch


Ignore:
Timestamp:
May 27, 2016, 5:27:39 PM (8 years ago)
Author:
rybkin
Message:

merge -r 670:679 HEAD

Location:
CMT/v1r25-branch
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • CMT/v1r25-branch

  • CMT/v1r25-branch/ChangeLog

    r671 r680  
     12016-05-27    <rybkin@lal.in2p3.fr> 528
     2
     3        * mgr/cmt_svn_checkout.py: Strip leading '!' from CMTHEADVERSION value, if any,
     4        when setting package version
     5        * source/cmt_use.cxx: Strip leading '!' from CMTHEADVERSION value, if any,
     6        when checking for head version, do not set error when use is not located
     7        if it corresponds to "cmt_standalone" package
     8
     92016-05-18    <rybkin@lal.in2p3.fr> 527
     10
     11        * mgr/cmt_svn_checkout.py: For trunk checkout, skip the check whether
     12        trunk corresponds to a particular tag if CMTHEADVERSION is unset, empty,
     13        or its value starts with '!'
     14
    1152014-02-04    <rybkin@lal.in2p3.fr> 526
    216
  • CMT/v1r25-branch/mgr/cmt_svn_checkout.py

    r664 r680  
    2424"""
    2525
    26 __version__ = '0.8.0'
    27 __date__ = 'Wed Jul 31 2013'
     26__version__ = '0.10.0'
     27__date__ = 'Fri May 27 2016'
    2828__author__ = 'Grigory Rybkin'
    2929
     
    204204        self.with_version_directory = with_version_directory
    205205        self.cleanup = cleanup
    206         self.head_version = head_version
    207         self.env()
    208 
    209     def env(self):
    210         if self.head_version is None:
    211             self.set_head_version(os.getenv('CMTHEADVERSION', 'HEAD'))
    212 #        print >>sys.stderr, 'env: set head_version: %s' % self.head_version
     206        if head_version:
     207            self.set_head_version(head_version)
     208        else:
     209            self.set_head_version(os.getenv('CMTHEADVERSION', ''))
    213210
    214211    def set_head_version(self, version):
    215         self.head_version = str(version).replace('<package>', '%(package)s').replace('<PACKAGE>', '%(PACKAGE)s').replace('<revision>', '%(revision)i')
     212        if not version:
     213            self.head_version = ''
     214            self.head_version_tag = False
     215        elif version.startswith('!'):
     216            # strip the leading '!'
     217            # require synchronization with C++ code
     218            self.head_version = version[1:]
     219            self.head_version_tag = False
     220        else:
     221            self.head_version = version
     222            self.head_version_tag = True
    216223
    217224    def eval_head_version(self, m):
    218         return self.head_version % \
    219                {'package' : m.package,
    220                 'PACKAGE' : m.package.upper(),
    221                 'revision' : m.info.last_changed_rev}
     225        return str(self.head_version).replace('<package>', '%(package)s').replace('<PACKAGE>', '%(PACKAGE)s').replace('<revision>', '%(revision)i') % \
     226            {'package' : m.package,
     227             'PACKAGE' : m.package.upper(),
     228             'revision' : m.info.last_changed_rev} \
     229             or 'HEAD'
    222230
    223231    def write(self, p, version):
     
    597605            if self.version is None:
    598606                m.head = True
    599                 m.version = self.trunk_tag(m, client_context) or \
    600                             cmt_context.eval_head_version(m)
    601 #                print >>sys.stderr, 'set version: %s' % m.version
     607                if cmt_context.head_version_tag:
     608                    m.version = self.trunk_tag(m, client_context) or \
     609                        cmt_context.eval_head_version(m)
     610                else:
     611                    trunk = posixpath.join(m.url, self.trunk)
     612                    cmd = 'svn info %s' % trunk
     613                    scc, out = Utils.getstatusoutput(cmd)
     614                    logger.debug('%s\n%s' % (cmd, out))
     615                    if scc != 0:
     616                        logger.error('%s\n%s' % (cmd, out))
     617                        sc += 1; continue
     618                    p = r'last\s+changed\s+rev:\s+(?P<rev>\d+)'
     619                    M = re.search(p, out, re.I)
     620                    if M:
     621                        class info(object): pass
     622                        info.last_changed_rev = int(M.group('rev'))
     623                        self.info_receiver(trunk, info, m)
     624                        logger.debug('last_changed_rev: %d' % info.last_changed_rev)
     625                    else:
     626                        logger.warning('%s: last_changed_rev: Not found' % trunk)
     627                    m.version = cmt_context.eval_head_version(m)
     628                logger.debug('set version: %s' % m.version)
    602629            else:
    603630                m.head = False
  • CMT/v1r25-branch/source/cmt_use.cxx

    r669 r680  
    752752      if (!use->located ())
    753753        {
     754          if (use->get_package_name () == "cmt_standalone") continue;
    754755          CmtError::set (CmtError::package_not_found, use->get_info ());
    755         }
    756       else
    757         {
    758           /*
    759             CmtMessage::info ("package " +
    760             use->get_package_name () +
    761             " " + use->version +
    762             (use->path != "" ? " " + use->path : "") +
    763             " found");
    764           */
    765756        }
    766757    }
     
    58475838    {
    58485839      cmt_string s (Symbol::get_env_value ("CMTHEADVERSION"));
     5840      // strip the leading '!'
     5841      // See mgr/cmt_svn_checkout.py:CmtContext::set_head_version
     5842      if (0 != s.size () && '!' == s[0]) s = s.substr(1);
    58495843      static const cmt_string package_template = "<package>";
    58505844      s.replace_all (package_template, get_package_name ());
Note: See TracChangeset for help on using the changeset viewer.