- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Mercurial 存储库中有一个软件。
我将我的软件项目打包为 Debian 包。
似乎执行此操作的标准方法是
Debian 软件包文件的单独分支,
住在debian
子目录。
我一直遇到的一个问题是我忘记了我是哪个分支
打开并意外提交到错误的分支。有时候是这样的
经常,真的很烦。发生这种情况时,我通常
在意识到问题之前推送到远程,然后有
手动修复本地和远程存储库,即
一种痛苦。
我能想到的唯一选择是有一个预提交钩子(Hook)
如果我试图提交到错误的分支,则会中止。
具体来说,假设主分支称为 default
和分支
包含 Debian 文件的名称为 debian
.然后我想提交到 default
只有当提交中的文件都不是来自 debian
时,分支才会成功。
目录。我想要提交到 debian
只有当所有目录都成功时
提交中的文件位于 debian
目录。
我花了一些时间阅读有关 Mercurial Hooks 的章节并浏览示例
在 Hg Book 中,但仍然不知道如何去做。我确实得到了强烈的印象
对于这样的事情,我应该调用外部 Python 脚本,可能
在 .hg/
.
最佳答案
是的,你在那个 precommit
钩子(Hook)可以做到这一点。如果您想在 bash 中执行此操作,则可以使用以下内容:
#!/bin/bash
revs=$(hg log -r "$HG_NODE:tip" --template '{rev} ') #Intentional space after {rev}
rc=0
for rev in $revs
do
files=$(hg log -r $rev --template '{files}')
#Above will include discards. So you cannot 'hg cat' them all. So you may want
# files=$(hg log -r $rev --template '{file_mods} {file_adds}')
branch=$(hg log -r $rev --template '{branch}')
for file in $files
do
if [ branch == "debian" ] && [ "$(echo $file | grep -v "debian")" != "" ] ; then
echo "ERROR: Non debian file in debian branch."
exit 1
fi
if [ branch != "debian" ] && [ "$(echo $file | grep "debian")" != "" ] ; then
echo "ERROR: debian file in non-debian branch."
exit 1
fi
done
done
exit $rc
关于version-control - 预先提交 mercurial 钩子(Hook)以停止提交到错误的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234473/
我正在使用JQuery Mobile,有两个可用版本:稳定版和旧版。我不熟悉后者。 什么是旧版?或与稳定版有什么区别? 建议在生产现场中使用哪一个? 非常感谢 最佳答案 旧版本是一个旧的稳定版本,由于
Lotus Notes 具有“版本控制”功能。您可以将其设置为在用户需要单击 File->New->Version 以创建新版本的模式下工作。我想在表单上的按钮中使用该功能。 有没有办法(使用 Lot
关闭。这个问题是opinion-based 。目前不接受答案。 已关闭10 年前。 已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 是否有任何
我对使用数据库和数据库设计/创建模式非常陌生,我非常感谢一些建议/建议。我正在创建一个应用程序,用户在其中输入数据,并向用户提供该数据的版本控制。用户可以进入并恢复更改或更新值(有点像 git)等,我
尝试启动带头 Selenium session 时出现此错误。 我使用的命令是driver = webdriver.Chrome(executable_path=r'C:\Users\Administ
Apple 的文档本来可以更清楚地说明如何提交更新版本。 正如标题所问,有什么区别 itunes connect 中的版本号(提交更新时必须提供) xcode 中的捆绑版本 捆绑版本字符串,短 它们有
当我在我的 Android 设备上运行我的应用程序时出现错误: meteor run android-device --settings settings.json --mobile-server=m
v = data.getValues(XP_PHONE); for (int i = 0; i alter 'table_foo', {NAME => 'column_fam_foo', V
我在Google CoLab中有这样一个错误:。以下是我的Cuda和Torch版本:。CUDA版本:。这是pytorch版本:2.0.1+cu118我试图安装Cuda 11.8,但没有成功。
我从其他用户那里发现了“类似”的问题,但没有一个答案有效。我正在尝试安装这些软件包: if (!require("BiocManager")) install.packages("BiocMana
我正在使用 Version Maven Plugin插件 use-latest-versions将 groupID=com.example* 内部依赖版本更新到最新版本的功能。这是使用 Jenkins
我是 Kotlin 应用程序开发的初学者。当我尝试构建应用程序时发生以下错误 - e: C:/Users/Lenovo/.gradle/caches/transforms-2/files-2.1/32
我正在尝试安装一个名为 metaBIT 的程序。我能够将它添加到我的路径中。但是当我执行时: metaBIT -h 它出错并给我这个: Traceback (most recent call last
在使用选项 -smt2 -in 启动 Z3 后,我可以获取 Z3 的版本吗?有点像 (get-z3-version) ; Z3 4.3.2 x64 // Desired reply 最佳答案 在SM
这个问题在这里已经有了答案: What is the difference between Version and 'Runtime Version' in .Net? (1 个回答) 关闭 9 年
new Version(AssemblyFileVersionAttribute.Version) 总是会成功吗? 这是我的代码。 Contract.Ensures(Contract.Result()
我正在尝试针对另一个使用 libcurl 共享库的共享库 (libtheirstuff.so) 交叉编译我自己的共享库 (libmystuff.so),但出现以下错误: libmystuff.so:
在 Bazaar 中,如果您在 foo.html 中有冲突,它将生成额外的 3 个文件 foo.html.BASE foo.html.OTHER foo.html.THIS 那么你可以 diff -N
我的 java 7 和 java 8 都安装在我的 Windows 系统的 C:\Program Files\Java 下 在环境的路径中我像这样指定了java 7的路径。 %JAVA_HOME%/b
#version 330 和 #version 330 core 有什么区别? 核心重要吗? 最佳答案 这两个版本声明是等价的。 核心 是默认值。来自 GLSL 3.30 规范: If no prof
我是一名优秀的程序员,十分优秀!