我的理解是克隆存储库的默认分支是HEAD指向克隆的repo中的任何内容.
我现在有一个案例,这不是真的.我的理解显然是有缺陷的,那么在克隆(裸)repo时,什么决定了默认的checkout分支呢?
该repo的最后一次提交是在裸仓库的HEAD中引用的分支与我在克隆中作为checkout分支获得的分支之间的合并.
运行git remote show origin回报:
Fetch URL: ...
Push URL: ...
HEAD branch (remote HEAD is ambiguous, may be one of the following):
<bad-branch>
live
Remote branches:
...
Run Code Online (Sandbox Code Playgroud)
Bare repo使用Git版本1.8.2.1,客户端使用1.7.12.4,传输是SSH.
也许答案实际上是这里的答案.这个答案证实了这一点.如果选择的符号引用都指向与HEAD相同的修订版,则客户端将猜测要使用哪个分支.
有没有办法可以设置--info或--stacktrace通过gradle.properties?
我目前有一些gazillion构建脚本,最终会在某些时候调用gradle,我想全面标准化错误处理行为.
天真使用内置设置有时会导致挂起连接.这可能是我无法控制的网络问题.
我想知道如何为下载工件和发布工件设置超时和重试.
我找到了HTTP旅行车的连接超时和读取超时设置,但我还没有找到重试选项.
对于发布,我找到了重试选项,但没有超时设置.
编辑我想要的是相当于curl的--max-time, - retry和--retry-delay选项,用于maven和gradle下载和发布.
我想编写一个gradle构建任务来执行一些工件repo复制和重组.我到目前为止:
apply plugin: 'maven'
apply plugin: 'maven-publish'
repositories {
...
}
configurations {
...
}
dependencies {
...
}
task doit << {
configurations.each { configuration ->
println configuration
configuration.files.each { file ->
println " f=${file.path}"
}
configuration.dependencies.each { dependency ->
println " g=${dependency.group}"
println " i=${dependency.name}"
println " v=${dependency.version}"
dependency.artifacts.each { artifact ->
println " x=${artifact.classifier}"
println " n=${artifact.name}"
println " u=${artifact.url}"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法获得的是对dependency.artifacts.each()循环中下载文件的引用.
我能做的最好的事情是通过遍历configuration.files来填充数组,然后希望我对工件元数据的第二组循环与文件的顺序相同.我显然错过了一些东西
也许有一些替代方式?我真正想要的是生成一组任务,每个工件一个,这将允许我发布具有已更改的元数据项的新工件(即组ID,工件ID和版本应该更改).
当然,我可以使用shell命令,但我希望有一种可行的方法来做到这一点,这样我就可以得到"改变/未改变"的响应.
似乎很多人已经git clone用组合替换了git init && git fetch.这看起来相当愚蠢,不幸的是像詹金斯这样的工具不会为你做那件事.那么为什么git clone不采用refspec,就像git fetch一样呢?
具体来说,如果您希望在Jenkins上运行gerrit触发的构建任务,则需要确保工作区存在,否则jenkins将无法签出包含gerrit更改的修订.这是因为gerrit使用的ref路径不属于git clone提取的路径.
我想使用 JGit 确定 HEAD 的远程跟踪分支。
在直接 git 中,我可以这样做:
git rev-parse --abbrev-ref --symbolic-full-name @{upstream}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 JGit 中做到这一点?
当前,我在多项目设置的顶级build.gradle中定义了一些实用程序功能,例如:
def utilityMethod() {
doSomethingWith(project) // project is magically defined
}
Run Code Online (Sandbox Code Playgroud)
我想将此代码移到插件中,这将使UtilityMethod在应用插件的项目中可用。我怎么做?是project.extension吗?
我非常不愿意写一个完整的插件,而且我只知道一种将一些信息注入到构建的构建状态屏幕的方法:设置构建描述。
我想从 groovy 系统脚本显示并动态更新更复杂的渲染到构建状态页面。实现它的最佳方法是什么?我是否必须编写一个完整的插件并了解整个订书机范例?
有谁有神奇的 maven/gradle 调用来编译一组 jenkins pipeline DSL groovy 文件吗?