在下面的脚本中,我尝试克隆除了两个以外的所有项目,然后将这两个项目克隆到主路径中,而不是我的项目目录:
#!/usr/bin/env python
import os, sys, subprocess, time, re
from my_scripting_library import *
bucket_hoss = BitbucketAPIHoss()
all_project_names = bucket_hoss.get_bitbucket_project_names()
print(all_project_names)
os.chdir(PROJECT_PATH)
print(PROJECT_PATH)
TOP_LEVEL_PROJECTS = ['scripts', 'my_documents']
for project in all_project_names:
if project not in TOP_LEVEL_PROJECTS:
clone_project(project=project)
os.chdir(HOMEPATH)
print (HOMEPATH)
print(os.getcwd())
for project in TOP_LEVEL_PROJECTS:
clone_project(project=project)
输出
cchilders:~/scripts [master]$ ./git_and_bitbucket/clone_all.py
[u'autohelper', u'bookwormbuddy', u'buildyourownlisp_in_C', u'bytesized_python', u'craigslist', u'foodpro', u'govdict', u'javascript-practice', u'learn_c_the_hard_way', u'my_documents', u'neo4j_sandbox', u'notes_at_work', u'poker_program_demo', u'portfolio', u'scriptcity_demo', u'scripts', u'transmorg_django', u'writing']
/home/cchilders/projects
fatal: destination path '/home/cchilders/projects/autohelper' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/bookwormbuddy' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/buildyourownlisp_in_C' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/bytesized_python' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/craigslist' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/foodpro' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/govdict' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/javascript-practice' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/learn_c_the_hard_way' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/neo4j_sandbox' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/notes_at_work' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/poker_program_demo' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/portfolio' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/scriptcity_demo' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/transmorg_django' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/writing' already exists and is not an empty directory.
/home/cchilders
/home/cchilders
fatal: destination path '/home/cchilders/projects/scripts' already exists and is not an empty directory.
fatal: destination path '/home/cchilders/projects/my_documents' already exists and is not an empty directory.
由于脚本现在显示在正确的目录(我的HOMEPATH)中,为什么这些项目仍然有自己的想法被克隆到项目目录中?谢谢
答案 0 :(得分:1)
问题出在您的clone_project
函数中。我的猜测(因为您没有发布该代码)是projects
要么直接硬编码,要么设置为PROJECT_PATH
。
答案 1 :(得分:1)
猜测,你是否正在改变相对路径并且不改变回来?
例如,如果您从
开始 /home/myuser
然后chdir进入project1
/home/myuser/project1
如果您尝试将chdir转换为project2
/home/myuser/project1/project2
你可能首先要回到起点。