我想执行拉取和合并请求,但我也想从这个拉取请求中排除一些文件.
Example: a.py b.py c.py
Run Code Online (Sandbox Code Playgroud)
我想执行拉请求并合并除b.py文件.
实现这一目标的最简单方法是什么?
[编辑]该文件尚未提交.
我正在向项目提交两个独立的新功能作为pull-requests.每个功能都在主题分支中,每个功能都从主服务器的分支开始分支.
/-- feature1
master ---
\-- feature2
Run Code Online (Sandbox Code Playgroud)
问题是虽然任何一个分支都可以自己干净地合并到master中,但是当合并第二个分支时,它会产生冲突.这不是因为这些功能相互依赖,而是碰巧碰到相同的代码.
一个简单的例子:如果原始文件是逗号分隔的列表,并且每个提交想要向其添加一个新项目,它可能如下所示:
master:
a,
b,
c
feature1:
- c
+ c,
+ d
feature2:
- c
+ c,
+ e
Run Code Online (Sandbox Code Playgroud)
在一天结束时,如果两个拉取请求都被接受,则d和e最终应该以任何顺序添加到列表中(因为这些特征是完全独立的,因此它们不相互依赖).但是,如果你试图将它们拉进去,你就会发生冲突.
处理这个问题的最佳方法是什么?feature2应该基于feature1的结尾,然后它们应该以正确的顺序合并到master中吗?
master ---
\--- feature1
\------ feature2
Run Code Online (Sandbox Code Playgroud)
如果我这样做,feature2的pull-request会显示feature2提交,还是会显示所有feature1 + feature2提交?
或者我应该在feature1合并到master之后重新设置feature2?
好的,我还没有找到更好的方法来标题我的问题.解释方案更容易.但请记住这是一个Github问题,而不是 Prototype-JS问题(请不要为我添加标签)
我正在研究基于Prototype的Web应用程序.我发现1.7.1(对作者没有责备)有一些令我们讨厌的错误.幸运的是,对于我们来说,所有这些错误确实通过已经被主分支接受的拉取请求进行公开修复.
我的老板和我讨论了为我们发现的每个不兼容性修补Prototype 1.7.1之间的选择,我们同意在即将生产的应用程序中使用"开发"版本不是最好的选择,所以我们的想法是修补我们的Prototype版本.
我对此负责.因为我想跟踪我的公司应用于Prototype的变化(即使我是唯一一个触摸JS文件的人),我想以一种有效的方式来做,可以留给后代.
Github允许您将任何项目分成您自己的工作区,以便您可以随意使用它.我想通过实际将它们链接到对原始项目的现有拉取请求来跟踪我导入Prototype的补丁.
鉴于Github上的一个通用开源项目,我已经分叉了,有没有什么方法可以找到提交给原始分支的pull请求,并选择在我自己的fork中"导入"它(假设文件应该是diff-兼容)这样它将被应用到我的分支?
当然,随着时间的推移,这使我能够跟踪记录(通过评论和讨论)关于我选择在我的分支中导入哪些 PR 以及哪些 PR没有.
我只是在玩bitbucket/mercurial pull requests功能,而且有些事情表现得很奇怪,或者我正在做一些非常愚蠢的事情.
我(theukdave)是一个存储库'RepoA'的所有者,它是在'团队'下创建的(我收集的bitbucket实际上已经没有了).让我们说它住在bitbucket.org/team1/RepoA
所以我用自己的用户名创建了一个存储库的fork,称之为RepoB.所以现在有一个生活在bitbucket.org/theukdave/RepoB的分叉
然后,我在主开发分支'develop'的分支上创建一个测试提交,然后将新分支合并回develop.我推到了bitbucket.org/theukdave/RepoB,然后创建了一个从'theukdave/RepoB develop'到'team1/RepoA develop'的拉取请求,我添加了一个标题和描述,没有评论者(因为我只是测试正确)现在)并单击"创建拉取请求"按钮.
片刻之后,RepoB的测试提交和合并显示在我的RepoA中.拉请求在那里,我可以看到它,我还没有批准它,但是提交和合并并且可供RepoA的所有用户使用.即使我拒绝了拉取请求,测试提交仍然在RepoA中.
这是因为我是RepoA的所有者,所以我的拉取请求会自动合并吗?是因为我没有添加评论者吗?两者的组合?或者我在这里遗漏了一些东西......
我们使用Team City(版本2017.1.5)建立了构建管道,并且我们使用内部Bitbucket服务器(版本4.8)作为我们的git存储库.我们的分支模型是GitHub Flow
我们使用mendhak Team City插件向Bitbucket服务器报告构建状态.此外,我们已经在团队城市中创建了一个构建来构建具有分支触发器的拉取请求:+:refs/(pull-requests/*)/merge.
但是,此分支过滤器的构建状态在拉出请求窗口/页面的Bitbucket中不可见.
如果我们在特征分支上使用分支过滤器(例如+:refs/heads/(feature/*)),则在PR上正确显示构建状态.但是,我们有兴趣在Pull Request上显示PR构建状态.
我们发现自2013年以来Atlassian 已经存在一个未解决的问题(是的 - 差不多5年).看起来它不会很快修复.
问:
是否有任何可以解决此问题的变通方法或Bitbucket插件(或Team City插件).我们希望避免添加任何额外的分支过滤器/触发器.
我觉得这是一个相当普遍的问题,应该已经被很多其他团队/个人解决了.我恰好没有找到合适的资源/材料.
任何指针,都非常感谢.
进行更改后,我看到这样的文本:
Writing objects: 100% (5/5), 478 bytes | 239.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote:
remote: Create pull request for my-branch => master-branch
remote: https://bitbucket.org/my-company/repo/pull-requests/12345
Run Code Online (Sandbox Code Playgroud)
但是,如果那时我不进行PR,并且文本滚动到视线之外,则该URL已消失。如何仅生成或重新查看该URL而无需进行更改并再次提交/推送?
我的团队为每个开发人员使用单独的功能分支,然后通过拉取请求将代码合并到开发分支,然后通过拉取请求将开发分支合并到测试分支。
我知道,如果多个开发人员正在同一个分支上工作并推送他们的代码,万一发生冲突,intellij 会自动弹出冲突解决窗口,我们可以轻松地使用该窗口来接受各自提交所需的更改。
我一直在尝试使用相同的 intellij 选项来解决从开发到测试的拉取请求中的合并冲突。是否可以这样做呢。我参考了一些 intellij 文档,但没有一个解决这个问题。我正在使用 bitbucket stash,如果有帮助的话。
我需要一些帮助来检测多分支管道中的 PR 事件,我在谷歌上搜索了很多,但我找不到任何东西。我一直在尝试触发一个已结束的公关活动的构建。这与触发合并到的分支不同。
我有这些条件,运行良好
when {
branch "master"
}
Run Code Online (Sandbox Code Playgroud)
或者
when {
changeRequest()
}
Run Code Online (Sandbox Code Playgroud)
但我缺少类似的东西:
when {
changeRequest(status = "merged") // or "closed"
}
Run Code Online (Sandbox Code Playgroud)
知道如何做到这一点吗?我的目标是对预览环境进行一些清理,为此我需要知道 PR ID。
我正在使用 bitbucket post webhook,在 Jenkins 中我使用“Bitbucket Branch Source Plugin”。我知道“事件”正在发送到 Jenkins,因为它已在 Webhook 中检查。有什么建议么?
问候!
我们的 Jenkins + Bitbucket 云集成已经可以运行,并使用多分支管道作业来通知 Bitbucket 有关拉取请求的构建状态。
现在我想增强它并添加预览环境,例如,pr150.testing.company.com以便我们可以在合并之前测试实时生产构建。我计划使用 docker-compose 动态启动/停止预览环境。
现在,Jenkins 需要使用预览环境的链接来评论 Bitbucket 拉取请求。我知道Bitbucket API 支持创建拉取请求评论。
Jenkins 的 Bitbucket 插件是否支持自动创建此类评论?
编辑:为了澄清,一个自动评论拉取请求的插件就足够了。在我们这边创建评论的内容是没有问题的。
假设我有一个在每个要掌握的 PR 上运行的工作流程,其开头为:
on:
pull_request:
branches:
- master
Run Code Online (Sandbox Code Playgroud)
如果 PR 来自分支机构,我想跳过所有工作depbot。就像是:
on:
pull_request:
branches:
- master
head_ref-ignore:
- depbot
Run Code Online (Sandbox Code Playgroud)
我认为您可以使用跳过所有步骤(一次一个)
if: startsWith(github.head_ref, 'depbot') == false
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的,因为它仍然会启动这项工作。我怎样才能在启动阶段实现这一目标?