如果我们发现某些分支中的错误,我们会修复它(请查看图片上的新版本).但我们也有兴趣将此修复程序移动到旧版本和主要开发分支:
a-->b-->c (Old release) | A-->B-->C-->D (Main release) | 1-->2-->bugfix-->4 (New release)
svn记得在svn:merge属性(来自svn 1.6,2009)哪个版本合并到哪个分支.因此,下次如果您合并修订区域,则会从合并修补程序中跳过先前合并的修订.
如何应对现代DVCS?
我需要制作普通补丁并将其应用到每个分支机构或DVCS存在一些帮助吗?
注意:我不能将New branche 合并到Main,因为之前的更改集也会移动到Main branche.
Rebase也不可能,因为许多开发人员都会发布新版本.
我有兴趣回答命名的braches模式和多存储库模式.
PS. Andy建议找到bug影响的所有分支的公共父级,更新它,对bug进行修复并将修复移动到受影响的分支.
通过更新到旧的变更集并进行更改,您可以创建新的分支.我建议创建命名分支(将其命名为bugID),以便稍后您可以轻松返回它.
找到我们有兴趣修复bug的所有分支的共同父母都有问题.
第一个解决方案(建议Andy)使用$ hg/git/bzr blame并仔细检查所有受影响文件的输出.这涉及到对第一BUG修复了一些最新的变更你找到之前怪什么变更引入的错误.然后,您需要将rebase fix(patch)修改为常见的父更改集.
另一个解决方案是使用$ hg/git/bzr bisect(您也可以手动执行更新以查找引入了错误的第一个修订版).这可以是扩展但更真实的解决方案,因为允许将bug修复到任何存在bug的分支.
我认为最好首先找到第一个BAD变更集,然后修复一个错误,而不是先修复一个错误然后找到第一个BAD变更集(除非您已经知道如何修复bug).引入差异也有助于理解它为什么会发生.
PPS.对于错误,很清楚哪个分支实现允许合并更改到任何受影响的分支. …
Git有merge-base命令,显示两个或多个分支的共同祖先.
Mercurial和bzr有什么类似的东西?
Microsoft CHM格式很棒,因为它提供了这样的设施:
但是这种格式已经过时并且有许多缺点:
对于所有desctop操作系统都有读取器和编译器的CHM有什么替代方案吗?
PS.我听说QT就像KDE一样,NetBeans也使用自己的帮助格式.非特定供应商如何?
PPS.一些相关:
PPS.作为状态页面http://en.wikipedia.org/wiki/Comparison_of_e-book_formats最接近CHM的是EPUB和Mobipocket格式.但是这种格式在内部使用XHTML,因此EPUB/mobi读者可能无法正确呈现现有的html页面.同样作为这种格式的新手,我不知道他们是否在CHM中有TOC,索引和搜索.
我想在Maven中检查属性文件中的身份验证数据是否由开发人员在应用程序测试期间提供,如果调用集成测试生命周期.
作为状态惯例,将认证数据提交给源树是不好的.在用户名和密码等设置中描述的标准maven方法不应与pom.xml一起分发.
但我不喜欢这种方法(我想要每个checkout设置,而不是每个dev-host !!)并且想要在VCS(SVN/GIT/HG)中提供src/text/resources/auth.properties.example作为示例,想要在Maven中检查是否存在src/text/resources/auth.properties的代码,这是每个开发人员拥有的(或者每个项目结账!!)但是只有在调用了集成测试阶段时(或者在集成之后的任何其他阶段)测试阶段).如果执行任何先前阶段(如编译或测试) - 必须禁用此检查.
Maven 验证阶段旨在检查构建一致性(请参阅引入生命周期).但是没有任何阶段的检查!所以我使用预集成测试阶段.
我写了工作代码:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>my-app</name> <profiles> <profile> <id>existent.properties</id> <activation> <file> <missing>auth.properties</missing> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo>In order to run integration-text life-cycle:</echo> <echo> 1) Rename 'auth.properties.example' …
我读了很多init.d
脚本,并且:
pid=`cat $pidfile`
Run Code Online (Sandbox Code Playgroud)
线让我伤心.我不明白为什么人们不使用:
read pid <$pidfile
Run Code Online (Sandbox Code Playgroud)
上一个示例使用符合POSIX的语法,不执行fork
/ exec
运行外部进程(cat
).
最后的解决方案还允许在第一个换行符后跳过内容.
是否有任何带有read
命令的陷阱(尽管它执行拆分为字段)?
更新.有些人使用非便携式扩展来实现shell:
pid=$(<$pidfile)
Run Code Online (Sandbox Code Playgroud) 我如何创建一个java.sql.timestamp
没有时区(我得到2007-09-23T10:10:10Z
并假装2007-09-23T10:10:10
).
我尝试:
Timestamp timestamp = Timestamp.valueOf("2007-09-23 10:10:10");
Run Code Online (Sandbox Code Playgroud)
但在调试中我看到了cdate 2007-09-23T10:10:10.000+0100
而不是2007-09-23T10:10:10
这是通常的代码:
@Autowire
private Service service;
Run Code Online (Sandbox Code Playgroud)
但是使用Java 7,这也可以(并且更短):
private @Autowire Service service;
Run Code Online (Sandbox Code Playgroud)
这在Java 8中是否合法(具有相同的语义)?这是不好的编码练习吗?
我的来源有一个常数,即首字母降低的类名。
Spring 是否有实用方法可以将类类型转换为首字母降低的字符串?这使我可以安全地重构类名。
例如:
SpringXXX.defaultBeanNameYYY(MyCustomBeanFactoryProcessor.class)
Run Code Online (Sandbox Code Playgroud)
应该产生:
myCustomBeanFactoryProcessor
Run Code Online (Sandbox Code Playgroud) 我可以使用:shell输入当前目录并运行命令.bash_completion工作正常.
但是如何让bash_completion工作:命令或:r!命令案例?
注意.我是Emacs用户和Emacs M-!命令不允许这样的事情(也是Mx shell,你需要Mx术语来获得bash_completion).
我的小程序:
#include <stdio.h>
int main() {
signed char c = -128;
c = -c;
printf("%d", c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印:
-128
Run Code Online (Sandbox Code Playgroud)
减( - )运算符是否可以跨CPU运行?