顯示具有 repo 標籤的文章。 顯示所有文章
顯示具有 repo 標籤的文章。 顯示所有文章

2019年10月19日 星期六

AttributeError: 'NoneType' object has no attribute 'rstrip

Full error log:
yulin@WNC:/work/yulin/cat9640$ repo forall -c "pwd"                                 
Traceback (most recent call last):                                                 
  File "/work/yulin/cat9640/.repo/repo/main.py", line 531, in                
    _Main(sys.argv[1:])                                                             
  File "/work/yulin/cat9640/.repo/repo/main.py", line 507, in _Main                 
    result = repo._Run(argv) or 0                                                   
  File "/work/yulin/cat9640/.repo/repo/main.py", line 180, in _Run                 
    result = cmd.Execute(copts, cargs)                                             
  File "/work/yulin/cat9640/.repo/repo/subcmds/forall.py", line 226, in Execute     
    projects = self.GetProjects(args, groups=opt.groups)                           
  File "/work/yulin/cat9640/.repo/repo/command.py", line 140, in GetProjects       
    all_projects_list = manifest.projects                                           
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 350, in projects     
    self._Load()                                                                   
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 428, in _Load         
    self._ParseManifest(nodes)                                                     
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 481, in _ParseManifest
    remote = self._ParseRemote(node)                                               
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 657, in _ParseRemote 
    return _XmlRemote(name, alias, fetch, pushUrl, manifestUrl, review, revision)   
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 78, in __init__       
    self.resolvedFetchUrl = self._resolveFetchUrl()                                 
  File "/work/yulin/cat9640/.repo/repo/manifest_xml.py", line 88, in _resolveFetchUrl
    manifestUrl = self.manifestUrl.rstrip('/')                                     
AttributeError: 'NoneType' object has no attribute 'rstrip'                         
yulin@WNC:/work/yulin/cat9640$                                                     

Debug#1
Refer to https://groups.google.com/forum/#!topic/android-building/0QkvGAQJ_Kg.
Adding alias to remotes fails to fix this issue.

Debug#2
 Add debug logs in manifest_xml.py
----------------------------------------------------------------------------------------------------------
class _XmlRemote(object):
  def __init__(self,
               name,
    ...
    self.revision = revision   
+ print('Yulin._XmlRemote.__init__:name=',name,'fetch=',fetch,'pushUrl=',pushUrl,'manifestUrl=',manifestUrl,'alias=',alias,'review=',review,'revision=',revision)
    self.resolvedFetchUrl = self._resolveFetchUrl()

  def _resolveFetchUrl(self):
+    print('Yulin._XmlRemote._resolveFetchUrl:fetchUrl=',self.fetchUrl)
    url = self.fetchUrl.rstrip('/')
    manifestUrl = self.manifestUrl.rstrip('/')
----------------------------------------------------------------------------------------------------------
Yulin._XmlRemote.__init__:name= hal fetch= ssh://wnc-integrator@wnc_hal/home/wnc-i                                                                                      ntegrator/ pushUrl= None manifestUrl= None alias= None review= None revision= None
Yulin._XmlRemote._resolveFetchUrl:fetchUrl= ssh://wnc-integrator@wnc_hal/home/wnc-                                                                                      integrator/
----------------------------------------------------------------------------------------------------------
Inference: "manifestUrl= None" is the problem.

Solution
Comparing 'git config -l' in .repo/manifests/ btwn OK and NG shows remote origin is missing in NG case.
'git remote add origin ....' fixes this issue.

2017年10月30日 星期一

fatal: empty ident name (for ) not allowed

Issue
-----
    yulin@AIG:/work/yulin/w9250$ repo init -u git@172.16.201.30:mdm9650/manifests.git --config-name -b master -m UMC-9250W.xml
   
    Traceback (most recent call last):
      File "/work/yulin/w9250/.repo/repo/main.py", line 531, in
        _Main(sys.argv[1:])
      File "/work/yulin/w9250/.repo/repo/main.py", line 507, in _Main
        result = repo._Run(argv) or 0
      File "/work/yulin/w9250/.repo/repo/main.py", line 180, in _Run
        result = cmd.Execute(copts, cargs)
      File "/work/yulin/w9250/.repo/repo/subcmds/init.py", line 404, in Execute
        self._ConfigureUser()
      File "/work/yulin/w9250/.repo/repo/subcmds/init.py", line 298, in _ConfigureUser
        name  = self._Prompt('Your Name', mp.UserName)
      File "/work/yulin/w9250/.repo/repo/project.py", line 784, in UserName
        self._LoadUserIdentity()
      File "/work/yulin/w9250/.repo/repo/project.py", line 797, in _LoadUserIdentity
        u = self.bare_git.var('GIT_COMMITTER_IDENT')
      File "/work/yulin/w9250/.repo/repo/project.py", line 2747, in runner
        (self._project.name, name, p.stderr))
    error.GitError: manifests var:
    *** Please tell me who you are.
   
    Run
   
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
   
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
   
    fatal: empty ident name (for ) not allowed

Solution
--------
    Do below before 'repo init ...'
        git config --global user.email "you@example.com"
        git config --global user.name "Your Name"