MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / __load_user_source_dir

Method __load_user_source_dir

client/task/sourcemgr.py:294–320  ·  view source on GitHub ↗

如果用户通过环境变量CODEDOG_SOURCE_DIR指定了项目代码目录,直接复用该代码目录 1. 如果目录已存在,更新代码 2. 如果该目录不存在,创建目录,拉取代码 :return:

(self, user_source_dir)

Source from the content-addressed store, hash-verified

292 CodeLineReporter(self.params).start()
293
294 def __load_user_source_dir(self, user_source_dir):
295 """
296 如果用户通过环境变量CODEDOG_SOURCE_DIR指定了项目代码目录,直接复用该代码目录
297 1. 如果目录已存在,更新代码
298 2. 如果该目录不存在,创建目录,拉取代码
299 :return:
300 """
301 logger.info("已设置CODEDOG_SOURCE_DIR环境变量,使用指定的代码目录: %s" % user_source_dir)
302 user_source_dir = os.path.expanduser(user_source_dir)
303 if os.path.exists(user_source_dir): # 目录已存在,复用直接更新代码
304 self.params["source_dir"] = user_source_dir
305 # 上报进度
306 SourceReporter(self.task_type, self.params).cache_report()
307 self.__retry_update()
308 else: # 目录不存在,尝试创建目录并拉取代码
309 try:
310 # 创建一个空目录,作为代码存放地址,后面拉代码时检查到目录存在,就不会随机指定一个目录名
311 logger.info("指定的代码目录(%s)不存在,开始创建目录..." % user_source_dir)
312 os.makedirs(user_source_dir)
313 self.params["source_dir"] = user_source_dir
314 except Exception as err:
315 # 创建目录失败,后面拉代码会随机指定一个目录名
316 logger.error("创建目录失败(%s) failed: %s" % (user_source_dir, str(err)))
317
318 # 重新拉取代码
319 sm = SCMMgr(self.params)
320 self.__retry_checkout(sm)
321
322 def __checkout_data(self):
323 """

Callers 1

__checkout_dataMethod · 0.95

Calls 6

__retry_updateMethod · 0.95
__retry_checkoutMethod · 0.95
SourceReporterClass · 0.85
cache_reportMethod · 0.80
errorMethod · 0.80
infoMethod · 0.45

Tested by

no test coverage detected