在我们的项目中,我们决定使用预先构建的二进制文件来缩短构建时间.每周/每月我们创建一个稳定版本并将其提交到存储库.构建使用这些二进制文件而不是从源代码构建所有内容.
对于构建速度来说这太棒了.但是,毫不奇怪,它确实增加了SVN结账大小.我们的主干目前约为22 GB.我意识到这不是Subversion的预期用法.但我们目前没有替代方案.
但我想改善现状.该.svn文件夹对磁盘上的中继大小有很大贡献.更新二进制文件时,它似乎在.svn文件夹中保留了几个基础.也就是说,如果一个二进制文件是4 GB,那么就有一个副本.svn.如果它已更新,则该.svn文件夹将保留原始基础加上新基础,并为该文件最多容量为8 GB.
是否有可能告诉Subversion不要在.svn文件夹中为某些文件保留基础?通过谷歌我发现了一个类似的问题,如何减少.svn文件夹的大小?.
西蒙收到的答案是
幸运的是,subversion 1.8已经发布了.这个功能是否已添加?
我没有在发行说明中注意到它.虽然"目录和财产存储减少"看起来很有希望.
首先 - 向这个问题道歉.关于它的话题已经很多了.但我对他们没有太多运气.我对git缺乏熟悉并没有多大帮助.
我正在将一个文件夹从一个git repo移动到另一个(已经存在).例如
repo-1
---- dir1
---- dir2
---- dir3
---- dir-to-move
---- dir5
repo-2
---- dir1
---- dir2
---- dir3
Run Code Online (Sandbox Code Playgroud)
最后我希望回购看起来像
repo-1
---- dir1
---- dir2
---- dir3
---- dir-to-move
---- dir5
repo-2
---- dir1
---- dir2
---- dir3
---- dir-to-move
Run Code Online (Sandbox Code Playgroud)
也就是说,在两个回购中都存在dir-to-move.但最终我会将最新的更改迁移到repo-2并从repo-1中移除dir-to-move.
我最初的研究让我相信我需要使用filter-branch.例如
如何使用`git format-patch`和`git am`将文件从一个git repo移动到另一个保存历史记录
我已经知道子树取代了这种方法.然而,它并没有达到我的预期.我以为我能够做类似的事情
在repo-1工作区中
git subtree split -P dir-to-move -b split
Run Code Online (Sandbox Code Playgroud)
将拆分分支过滤到仅dir-to-move及其历史记录.然后在repo-2工作区 …
我有一个看似非常基本的问题.我正在关注一个教程.它说要通过Manager Jenkins安装Maven - 配置系统 - 添加Maven.
这在Windows上运行良好.但在MAC Add Maven上失踪了.即使我安装了Jenkins 2.2的新副本
我该如何解决这个问题?
配置系统下的MAC上缺少以下"添加XXX".
我在Electron的应用程序出现空白时遇到了问题。即它变成白屏。如果我打开开发工具,它将显示以下消息。
在ActivityMonitor中,发生这种情况时,我可以看到Electron Helper进程的数量从3个减少到2个。另外,似乎我不是唯一遇到它的人。例如
但是我还没有找到一个有帮助的答案。在电子崩溃的情况下,有什么好的方法可以识别问题?
对于上下文,我正在将SDK加载到Electron中。最初,我是使用browserify对其进行打包的,效果很好。但是我想转到SDK的npm版本。这个版本似乎已经引入了问题(尽管代码应该相同)。
我正在尝试构建一个iOS应用程序,我在调试模式下遇到错误.
ld: b/bl/blx thumb2 branch out of range (17330692 max is +/-16MB): from xxxx (0x0204CC28) to zzzz (0x030D4010) in 'yyyy' from libMyLib.a(MyObject.o) for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
这仅适用于iOS调试版本.iOS-Simulator在两种模式下都很好.
我遇到了" 这个页面 ".
这表明Apple已知道这个问题(rdar://16186742).但是解决方法对我没什么好处.即
The work around is to rearrange the source files in the project build phases and/or libraries in the Link Binary with Libraries section. With a few re-arrangements this problem should go away.
Run Code Online (Sandbox Code Playgroud)
我花了太多时间重新安排库链接顺序.这解决了不同*.a …
我正在通过Python调用子进程来构建Visual Studio 2010解决方案.当从命令行直接调用时,devenv.com需要15秒才能启动.但是当从Python调用时,它会跳跃大约1.5分钟.
当然,我希望从我们的构建中删除那个死时间.所以我决定测试MSBuild.exe(来自.NET 4).它看起来像MSBuild.exe立即运行.但是......它似乎每次都是完整的构建,而不是增量.
我正在使用的命令是
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" "C:\path\to\my\project.sln" /target:build /maxcpucount:8 /property:Configuration=Release
Run Code Online (Sandbox Code Playgroud)
看起来这应该支持增量构建.但我在网上看到帖子表明msbuild可能无法支持这样的增量版本.
这可能吗?如果是这样,我做错了什么?
更新:
我已经读过这个了.基于
http://msdn.microsoft.com/en-us/library/ms171483.aspx
和
http://www.digitallycreated.net/Blog/67/incremental-builds-in-msbuild-and-how-to-avoid-breaking-them
好像我需要在.vcxproj文件中设置输入和输出属性.检查我的文件确实丢失了.
什么时候会产生?我的大多数.vcxproj文件都是从Visual Studio 2008转换而来的.但是我还生成了一个缺少输入和输出属性的新项目.
VS2010不会创建具有这些属性的项目吗?
更新:我们已经升级到VS 2013.现在msbuild支持增量构建.从未深入到VS 2010问题的最底层.
我知道之前已经问过这样的问题了.但我找不到解决方案.
我想在子程序模块中使用我的python文件中定义的unicode文字.但我没有得到我需要的结果.例如以下代码
# -*- coding: utf-8 -*-
import sys
import codecs
import subprocess
cmd = ['echo', u'??']
new_cmd = []
for c in cmd:
if isinstance(c,unicode):
c = c.encode('utf-8')
new_cmd.append(c)
subprocess.call(new_cmd)
Run Code Online (Sandbox Code Playgroud)
打印出来
ä½ å¥½
Run Code Online (Sandbox Code Playgroud)
如果我将代码更改为
# -*- coding: utf-8 -*-
import sys
import codecs
import subprocess
cmd = ['echo', u'??']
new_cmd = []
for c in cmd:
if isinstance(c,unicode):
c = c.encode(sys.getfilesystemencoding())
new_cmd.append(c)
subprocess.call(new_cmd)
Run Code Online (Sandbox Code Playgroud)
我得到以下内容
??
Run Code Online (Sandbox Code Playgroud)
在这个阶段,我只能假设我反复犯了一个简单的错误.但我很难弄清楚它是什么.当通过python的子进程调用时,如何获得echo以打印出以下内容
??
Run Code Online (Sandbox Code Playgroud)
编辑:
Python的版本是2.7.我在Windows 8上运行,但我希望解决方案与平台无关.
根据此处的 docker 文档
https://docs.docker.com/network/host/
主机网络驱动程序仅适用于 Linux 主机,在 Docker for Mac、Docker for Windows 或 Docker EE for Windows Server 上不受支持。
在 Mac 上,人们使用哪些替代方案?
我的场景
最简单/最优雅的解决方案是什么?
我正在使用Groovy脚本控制台在Jenkins上创建和更新作业。使用此处记录的API
http://javadoc.jenkins-ci.org/
我发现了如何通过使用创建工作
createProjectFromXML(String name, InputStream xml)
但是,如果作业已经存在,则此方法将失败。如何使用新的xml更新现有作业?
更新资料
基于@ogondza的回答,我使用了以下内容来创建然后更新作业
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import java.io.*
import java.nio.charset.StandardCharsets
import javax.xml.transform.stream.*
config = """......My config.xml......"""
InputStream stream = new ByteArrayInputStream(config.getBytes(StandardCharsets.UTF_8));
job = Jenkins.getInstance().getItemByFullName("job_name", AbstractItem)
if (job == null) {
println "Constructing job"
Jenkins.getInstance().createProjectFromXML("job_name", stream);
}
else {
println "Updating job"
job.updateByXml(new StreamSource(stream));
}
Run Code Online (Sandbox Code Playgroud) 在 Jenkins 工作中,有没有办法下载测试生成的原始 xml 文件?例如通过扩展网址等?
名义上的方法是归档 xml 文件。
archiveArtifacts artifacts: 'test-results.xml'
junit 'test-results.xml'
Run Code Online (Sandbox Code Playgroud)
但我认为 Jenkins 已经有了这些信息来创建测试失败 UI。如果还有其他解决办法,我宁愿不存档 xml。