我遇到的问题是Eclipse/PyCharm解释子进程的Popen()的结果与标准终端不同.所有都在OSX上使用python2.6.1.
这是一个简单的示例脚本:
import subprocess
args = ["/usr/bin/which", "git"]
print "Will execute %s" % " ".join(args)
try:
p = subprocess.Popen(["/usr/bin/which", "git"], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# tuple of StdOut, StdErr is the responses, so ..
ret = p.communicate()
if ret[0] == '' and ret[1] <> '':
msg = "cmd %s failed: %s" % (fullcmd, ret[1])
if fail_on_error:
raise NameError(msg)
except OSError, e:
print >>sys.stderr, "Execution failed:", e
Run Code Online (Sandbox Code Playgroud)
使用标准终端,线路:
ret = p.communicate()
Run Code Online (Sandbox Code Playgroud)
给我:
(Pdb) print ret
('/usr/local/bin/git\n', '')
Run Code Online (Sandbox Code Playgroud)
Eclipse和PyCharm给了我一个空元组:
ret = {tuple} ('','') …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ant构建我的flex 4项目.在Flash Builder 4中,在项目属性中,可以将"框架链接"设置为"合并到代码","运行时共享库(RSL)"或"使用SDK默认(运行时共享库)"之一.如何在build.xml中将等效项设置为mxmlc选项?
我当前的build.xml如下所示:
<target name="myapp">
<mxmlc
file="${PROJECT_ROOT}/myapp.mxml"
output="${DEPLOY_DIR}/myapp.swf"
actionscript-file-encoding="UTF-8"
keep-generated-actionscript="false"
warnings="false" optimize="true" incremental="false" >
<load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
<source-path path-element="${FLEX_FRAMEWORKS}"/>
<compiler.debug>true</compiler.debug>
<runtime-shared-library-path path-element="${FLEX_FRAMEWORKS}/libs/framework.swc">
<url rsl-url="framework_4.0.0.14159.swz"/>
<url rsl-url="framework_4.0.0.14159.swf"/>
</runtime-shared-library-path>
<compiler.source-path path-element="src"/>
<!-- List of external libraries -->
<compiler.source-path path-element="${MY_LIB}/src" />
<!-- List of SWC files or directories that contain SWC files. -->
<compiler.library-path dir="libs" append="true">
<include name="*.swc" />
</compiler.library-path>
<copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swz"/>
<copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swf"/>
</mxmlc>
</target>
Run Code Online (Sandbox Code Playgroud)
我假设设置runtime-shared-library-path指令并将框架swf,swz文件复制到我的目标文件夹会使事情有效,但事实并非如此.
我评估这是否有效的方式如下:我使用自定义预加载器,为了工作,我需要将框架链接作为RSL.使用"合并到代码",我的预加载器卡在某一点,并没有进展到我的应用程序SWF.这与我在使用上面的build.xml时看到的行为相同,这让我觉得SWF正在构建时将框架链接合并到代码中(而不是RSL链接).
与此相关的问题是如何确定我的swf是否使用RSL.我想我可以看一下编译输出的大小.但似乎应该有一种方法来判断我是否正在使用外部框架文件,或者在我不知情的情况下将其捆绑到SWF中.
备份和迁移后,某些存储库在 Web 控制台中返回“No Repository”错误,并且无法克隆。已验证存储库是否存在 git_data_dirs 文件夹中指定的内容。
作为测试,我可以直接从存储库/文件夹中克隆“无存储库”项目,因此存储库本身似乎没有任何问题。
不确定如何复制它,但这是我经历的步骤:
我为诊断问题而采取的步骤。假设项目名为 myapp/myapp.foo.git:
查看/etc/gitlab/gitlab.rb中的git_data_dirs:
git_data_dirs({ "default": { "path": "/var/opt/gitlab/git-data"}, "silo": {"path": "/mnt/reposbackup/git-data"} })
请注意,我的项目在两个文件夹中都可用:/var/opt/gitlab/git-data/repositories/myapp/myapp.foo.git AND /mnt/reposbackup/git-data/repositories/myapp/myapp.foo.git
我还查看了数据库,“projects.repository_storage”值似乎是正确的。即使将其更改为“默认”与“筒仓”(这是我的备用目录)似乎也不起作用。
我试图了解 gitlab 如何确定存储库的位置,因为对 repo-path 的检查似乎是失败的原因。
sudo gitlab-rake cache:clear迁移完成后运行。