从git-merge的手册页中,您可以使用许多合并策略.
resolve - 这只能使用3向合并算法解析两个头(即当前分支和你从中拉出的另一个分支).它试图仔细检测纵横交错的合并模糊,并且通常被认为是安全和快速的.
递归 - 这只能使用3向合并算法解析两个磁头.当有多个可用于3向合并的共同祖先时,它会创建共同祖先的合并树,并将其用作3向合并的参考树.据报道,这可以减少合并冲突,而不会因为从Linux 2.6内核开发历史记录中进行的实际合并提交而导致错误合并.此外,这可以检测和处理涉及重命名的合并.这是拉动或合并一个分支时的默认合并策略.
章鱼 - 这解决了两个以上的案例,但拒绝进行需要手动解决的复杂合并.它主要用于将主题分支头捆绑在一起.这是拉动或合并多个分支时的默认合并策略.
我们的 - 这解决了任意数量的头,但合并的结果始终是当前的分支头.它旨在用于取代侧枝的旧发展历史.
子树 - 这是一个修改后的递归策略.当合并树A和B时,如果B对应于A的子树,则首先调整B以匹配A的树结构,而不是读取相同级别的树.这种调整也是对共同的祖先树进行的.
我什么时候应该指定不同于默认值的东西?哪些场景最适合?
我有一个git分支(例如主线),我想在另一个开发分支中合并.或者我呢?
为了确定我是否真的想合并这个分支,我想看看合并将做什么的某种预览.最好能够查看正在应用的提交列表.
到目前为止,我能想到的最好的是merge --no-ff --no-commit,然后diff HEAD.
从命令行看到以下内容后:
# On branch RB_3.0.10
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: index.htm
Run Code Online (Sandbox Code Playgroud)
我试图通过键入命令来放弃我的更改:
git checkout -- index.htm
Run Code Online (Sandbox Code Playgroud)
但是当我重新运行git status时,它看起来完全一样.结帐似乎不起作用.难道我做错了什么?我在windows/cygwin上使用GIT 1.6.1.2.
# On branch RB_3.0.10
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: …Run Code Online (Sandbox Code Playgroud) 我们使用JDBC的标准代码部分是......
Connection conn = getConnection(...);
Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rset = stmt.executeQuery (sqlQuery);
// do stuff with rset
rset.close(); stmt.close(); conn.close();
Run Code Online (Sandbox Code Playgroud)
问题1:使用连接池时,是否应该在结束时关闭连接?如果是这样,汇集失败的目的不是?如果没有,DataSource如何知道什么时候释放Connection的特定实例并且可以重用?我对这个有点困惑,任何指针都赞赏.
问题2:以下方法是否接近标准?看起来是尝试从池中获取连接,如果无法建立DataSource,请使用旧式DriverManager.我们甚至不确定哪个部分在运行时被执行.重复上面的问题,是否应该关闭连接出来的这种方法?
谢谢, - MS.
synchronized public Connection getConnection (boolean pooledConnection)
throws SQLException {
if (pooledConnection) {
if (ds == null) {
try {
Context envCtx = (Context)
new InitialContext().lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/NamedInTomcat");
return ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
}}
return (ds == null) ? getConnection (false) : ds.getConnection();
}
return DriverManager.getConnection(
"jdbc:mysql://"+ipaddy+":"+dbPort …Run Code Online (Sandbox Code Playgroud) 我一直在网上搜索为MongoDB Java驱动程序配置MongoOptions的最佳实践,除了API之外,我还没有提出太多其他方法.这个搜索在我遇到"com.mongodb.DBPortPool $ SemaphoresOut:Out of semaphores to get db connection"错误并且通过增加连接/乘数我能够解决该问题后开始.我正在寻找为生产配置这些选项的链接或最佳实践.
2.4驱动程序的选项包括:http: //api.mongodb.org/java/2.4/com/mongodb/MongoOptions.html
较新的司机有更多的选择,我也有兴趣听到这些.
production-environment mongodb database-performance database-tuning
假设我们有两个分支(B和C),它们与共同的祖先A不同.从B到C的合并会产生与从C到B合并相同的结果吗?
A
|
/ \
B C
Run Code Online (Sandbox Code Playgroud)
澄清 - 我假设任何手动合并冲突解决方案都会在两个方向上发生.但是,任何自动合并都会导致选择相同的代码吗?这就是我所假设的,因为提交日期在两个方向上都是相同的.
为了进一步澄清 - 我知道实际的合并会导致基于方向的彼此的"镜像".我只是询问自动解决的冲突.
以下代码仅适用于从S3中的存储桶下载文本文件.这不适用于图像.是否有更简单的方法来使用AWS SDK管理下载/类型?文档中包含的示例并不明显.谢谢!
AWSCredentials myCredentials = new BasicAWSCredentials(
String.valueOf(Constants.act), String.valueOf(Constants.sk));
AmazonS3Client s3Client = new AmazonS3Client(myCredentials);
S3Object object = s3Client.getObject(new GetObjectRequest("bucket", "file"));
BufferedReader reader = new BufferedReader(new InputStreamReader(
object.getObjectContent()));
File file = new File("localFilename");
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
while (true) {
String line = reader.readLine();
if (line == null)
break;
writer.write(line + "\n");
}
writer.close();
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个可以帮助我生成RESTful API文档的工具.我的服务器是用Java编写的,并使用Spring MVC框架.我的服务器中没有VIEWS.它是一个100%RESTful服务,它所做的只是消耗JSON并吐出JSON.
我想知道Swagger是否与Spring注释兼容?
我有一个处理多部分表单帖子的servlet.帖子实际上是由嵌入页面的Flash文件上传组件制作的.在某些浏览器中,Flash生成的POST不包含JSESSIONID,这使得我无法在帖子期间从会话中加载某些信息.
Flash上传组件确实包含特殊表单字段中的cookie和会话信息.使用此表单字段,我实际上可以检索JSESSIONID值.问题是,我不知道如何使用此JSESSIONID值手动加载该特定会话.
编辑 -基于ChssPly76的解决方案,我创建了以下HttpSessionListener实现:
@Override
public void sessionCreated(final HttpSessionEvent se) {
final HttpSession session = se.getSession();
final ServletContext context = session.getServletContext();
context.setAttribute(session.getId(), session);
}
@Override
public void sessionDestroyed(final HttpSessionEvent se) {
final HttpSession session = se.getSession();
final ServletContext context = session.getServletContext();
context.removeAttribute(session.getId());
}
Run Code Online (Sandbox Code Playgroud)
这会将所有会话添加到ServletContext,作为由其唯一ID映射的属性.我可以在上下文中放置一个会话映射,但它似乎是多余的.请发表有关此决定的任何想法.接下来,我将以下方法添加到我的servlet以通过id解析会话:
private HttpSession getSession(final String sessionId) {
final ServletContext context = getServletContext();
final HttpSession session = (HttpSession) context.getAttribute(sessionId);
return session;
}
Run Code Online (Sandbox Code Playgroud) 如何使用Spring和没有调用将依赖项注入HttpSessionListener,如context.getBean("foo-bar")?
spring servlets dependency-injection httpsession servlet-listeners