小编Col*_*lin的帖子

在git中查找跨越分支的标记的合并提交

我的产品是IntelliJ的插件.我支持基础IntelliJ平台的几个版本,并为每个版本发布我的插件的构建,因为它们的API经常在不同版本之间发生变化.这只是我的工作,所以我在master中开发,然后为每个其他版本维护一个分支.所以我的回购看起来像这样:

   1.6.0  1.6.1-eap1
.... a---b---c--- master
      \       \
       d-------e--- idea-2017.1
        \       \
         f-------g--- idea-2016.3
          \       \
          ...     ...  etc etc
Run Code Online (Sandbox Code Playgroud)

a是一个稳定的版本,并已被标记1.6.0.c是一个EAP(beta)版本,并已被标记1.6.1-eap1.这种方案适用于这两种情况.

偶尔我想创建一个不会进入发布渠道的开发版本,但是用户可以手动下载并测试他们是否喜欢.我想为每个平台生成一个开发版,因为开发用户可以使用任何IntelliJ版本.我能想到的最好的方法是为dev构建创建一个分支,比如标记1.6.0(提交a),然后从提交中创建相应的分支d,f依此类推,我可以将dev分支合并到其中并创建dev构建.

假设我想编写一个脚本来创建和维护这些分支,我怎样才能从标签中找到提交等d,f从而1.6.0创建dev构建分支?

git

11
推荐指数
1
解决办法
217
查看次数

如何在没有垃圾收集的情况下在Java 5上进行堆转储?

我们有一个运行Java 5的长期运行的服务器应用程序,并对其进行分析,我们可以看到老一代随着时间的推移缓慢增长.它在完整的GC上正确释放,但我希望能够使用堆转储查看Eclipse MAT中无法访问的对象.我已成功使用+ XX:HeapDumpOnCtrlBreak获取堆转储,但JVM在转储堆之前始终执行GC.显然这不会发生在Java 6上,但我们现在仍然坚持使用5.有什么方法可以防止这种情况吗?

java garbage-collection heap-memory

8
推荐指数
2
解决办法
1万
查看次数

我可以通过ssh获取子shell中执行的命令的退出代码吗?

我正在尝试使用Paramiko编写部署脚本,而我在运行的命令中遇到退出代码时遇到问题.我正在使用与此答案类似的代码,但它有点复杂.基本上,从我们的开发盒中,我们必须通过跳转服务器,并从那里到一系列生产机器.在那里,我们必须切换到系统用户(sudo su - systemuser)然后我们可以运行命令.

问题是,据我所知,我有3个子shell - ssh会话,嵌套的ssh命令,然后是su subshel​​l.我不能让Paramiko给我回到内部子shell中命令的退出代码 - 我猜它最终将返回的退出代码将是ssh命令的退出代码.我怀疑这个问题实际上并不是Paramiko特有的 - SSH协议是否支持这种用法?

我目前总是执行:

(my command); echo "Process terminated with exit code $?"
Run Code Online (Sandbox Code Playgroud)

然后在客户端解析这个,但它很丑 - 有更好的方法吗?

ssh paramiko

6
推荐指数
1
解决办法
1万
查看次数

AWS lambda不返回二进制内容

我有一个 API,正在使用 CDK 部署到 AWS。我正在使用 lambda 代理集成。我正在尝试创建一个新的 API 调用,它将返回一个 zip 文件,但我无法让它返回二进制数据。这是我所拥有的:

这最终将通过浏览器链接调用,因此我按照此文档binaryMediaTypes将其设置为(我也尝试将其设置为):*/*application/zip

const api = new apigateway.RestApi(this, "cursive-api", {
    restApiName: props.apiName,
    ... etc etc ...
    binaryMediaTypes: ["*/*"]
});
Run Code Online (Sandbox Code Playgroud)

我的集成contentHandling设置为CONVERT_TO_BINARY

const downloadIntegration = new apigateway.LambdaIntegration(downloadFn,
    {
        proxy: true,
        contentHandling: apigateway.ContentHandling.CONVERT_TO_BINARY
    });
Run Code Online (Sandbox Code Playgroud)

我正在使用curl并传递Accept标题:

curl -i -H "Accept: application/zip" <url>
Run Code Online (Sandbox Code Playgroud)

我可以在 CloudWatch 中看到接受标头正在通过 CloudFront 正常进行:

Field           Value
@ingestionTime  1620087566765
@log            592838288812:API-Gateway-Execution-Logs_xxx/prod
@logStream      xxx
@message        (xxx) Method request headers: {Accept=application/zip, CloudFront-Viewer-Country=NZ, …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-cdk

5
推荐指数
1
解决办法
511
查看次数