Changeset 28

Show
Ignore:
Timestamp:
2008年07月30日 09时59分56秒 (4 years ago)
Author:
jiangx
Message:

See #6: reset RCSINIT environment, or it may make something strange.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pysvnmanager/model/rcsbackup.py

    r27 r28  
    1111            #will be delete after initialize. we need reload it. 
    1212#sys.setdefaultencoding('utf-8') 
     13 
     14CMD_CI="RCSINIT= ci" 
     15CMD_CO="RCSINIT= co" 
     16CMD_RCS="RCSINIT= rcs" 
     17 
    1318 
    1419def is_rcs_exist(wcfile): 
     
    5055    cmd = [] 
    5156    if not is_rcs_exist(wcfile): 
    52         cmd.append("""ci -i -q -t-"%(msg)s" -w"%(user)s" %(file)s 2>&1""" % \ 
    53                 {"file":wcfile, "msg":comment, "user":user}) 
    54         cmd.append('rcs -U -q %s' % wcfile) 
     57        # -l : lock mode, make wcfile writable 
     58        cmd.append('%(cmd)s -i -q -l -t-"%(msg)s" -w"%(user)s" %(file)s 2>&1' % \ 
     59                {'cmd':CMD_CI, "file":wcfile, "msg":comment, "user":user}) 
     60        # -U : set locking to no-strict. 
     61        cmd.append('%(cmd)s -U -q %(file)s' % {'cmd':CMD_RCS, "file":wcfile}) 
    5562    else: 
    56         cmd.append("""ci -q -m"%(msg)s" -w"%(user)s" %(file)s 2>&1""" % \ 
    57                 {"file":wcfile, "msg":comment, "user":user}) 
     63        # Warning: w/o -l or -u option, wcfile will be removed after checkin. 
     64        # -l makes wcfile writable; 
     65        # -u : wcfile is not writable unless rcsfile is set to no-strict locking. 
     66        cmd.append('%(cmd)s -q -l -m"%(msg)s" -w"%(user)s" %(file)s 2>&1' % \ 
     67                {'cmd':CMD_CI, "file":wcfile, "msg":comment, "user":user}) 
    5868 
    5969    for i in cmd: 
     
    7282    opts = "" 
    7383    if revision: 
     84        # -uRev : checkout without lock revision. 
     85        # unlock wcfile is readonly, unless no-strict mode is set. 
    7486        opts = "-u%s" % revision 
    7587 
    76     cmd = "co %(opts)s -q -f %(file)s 2>&1" % {"opts":opts, "file":wcfile } 
     88    cmd = "%(cmd)s %(opts)s -q -f %(file)s 2>&1" % {'cmd':CMD_CO, "opts":opts, "file":wcfile } 
    7789    buff = os.popen(cmd).read().strip() 
    7890    if buff: 
    79         if 'co: warning: -l overridden by -u' in buff: 
    80             pass 
    81         else: 
    82             raise Exception, "Command: %s\nError Message: %s\n" % (cmd, buff) 
     91        raise Exception, "Command: %s\nError Message: %s\n" % (cmd, buff) 
    8392