问题列表 - 第24757页

什么使DVCS中的合并变得容易?

我在Joel的软件上读到:

使用分布式版本控制,分布式部分实际上不是最有趣的部分.

有趣的是,这些系统考虑的是变化,而不是版本.

HgInit:

当我们必须合并时,Subversion会尝试查看两个版本 - 我的修改后的代码和修改过的代码 - 它会尝试猜测如何在一个大的邪恶混乱中将它们粉碎在一起.它通常会失败,产生并非真正冲突的"合并冲突"的页面和页面,只是Subversion无法弄清楚我们做了什么的地方.

相比之下,当我们在Mercurial中单独工作时,Mercurial正忙着保留一系列变更集.因此,当我们想要将我们的代码合并在一起时,Mercurial实际上有更多的信息:它知道我们每个人都改变了什么并且可以重新应用这些更改,而不仅仅是查看最终产品并试图猜测如何放置它一起.

通过查看SVN的存储库文件夹,我的印象是Subversion将每个修订版维护为变更集.据我所知,Hg正在使用变更集快照,而Git纯粹使用快照来存储数据.

如果我的假设是正确的,那么必须有其他方法使DVCS中的合并变得容易.那些是什么?

*更新:

  • 我对技术角度更感兴趣,但从非技术角度来看是可以接受的
  • 更正:
    1. Git的概念模型纯粹基于快照.快照可以存储为其他快照的差异,只是差异纯粹用于存储优化.- 拉法洛·道格尔德评论
  • 从非技术角度来看:
    1. 它只是文化:如果合并困难,DVCS根本不会工作,因此DVCS开发人员投入大量时间和精力使合并变得容易.CVCS用户OTOH习惯于糟糕的合并,因此开发人员没有动力让它工作.(为什么当你的用户为你的垃圾付出​​同样的代价时能做些好事?)
      ......
      回顾一下:DVCS的重点是拥有许多分散的存储库并不断地来回合并变化.如果没有良好的合并,DVCS根本就没用.然而,CVCS仍然可以通过糟糕的合并来生存,特别是如果供应商可以调整其用户以避免分支.- JörgWMittag回答
  • 从技术角度来看:
    1. 录制真实DAG的历史确实有帮助!我认为主要区别在于CVCS并不总是将合并记录为与几个父母的变更集,从而丢失了一些信息.- tonfa评论
    2. 因为合并跟踪,以及每个修订都知道其父母的更基本的事实....当每个修订(每次提交),包括合并提交,知道其父项(对于合并提交,意味着拥有/记住多个父项,即合并跟踪),您可以重建图(DAG =直接非循环图)的修订历史.如果您知道修订图,则可以找到要合并的提交的共同祖先.当您的DVCS知道如何找到共同的祖先时,您不需要将其作为参数提供,例如在CVS中.
      .
      请注意,两个(或更多)提交可能有多个共同的祖先.Git利用所谓的"递归"合并策略,它合并了合并基础(共同的祖先),直到你留下一个虚拟/有效的共同祖先(在一些简化中),并且可以做简单的3路合并.- JakubNarębski回答

检查在Git中合并和/或为什么在SVN中的合并更好?

svn git version-control mercurial dvcs

48
推荐指数
4
解决办法
3546
查看次数

beautifulsoup:找到第n个元素的兄弟姐妹

我有一个具有以下性质的复杂html DOM树:

<table>
    ...
    <tr>
        <td>
            ...
        </td>
        <td>
            <table>
                <tr>
                    <td>
                        <!-- inner most table -->
                        <table>
                            ...
                        </table>

                        <h2>This is hell!</h2>
                    <td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我有一些逻辑来找出最内层的表.但在找到它之后,我需要获得下一个兄弟元素(h2).无论如何你可以这样做吗?

python beautifulsoup find siblings

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

在rspec(和黄瓜)中测试rake任务

我是Ruby的新手,我一直在努力学习Rake,RSpec和Cucumber.我发现了一些代码可以帮助我测试我的Rake任务,但是我无法让它工作.我在这里被告知:http://blog.codahale.com/2007/12/20/rake-vs-rspec-fight/放弃这个:

def describe_rake_task(task_name, filename, &block)
  require "rake"

  describe "Rake task #{task_name}" do
    attr_reader :task

    before(:all) do
      @rake = Rake::Application.new
      Rake.application = @rake
      load filename
      @task = Rake::Task[task_name]
    end

    after(:all) do
      Rake.application = nil
    end

    def invoke!
      for action in task.instance_eval { @actions }
        instance_eval(&action)
      end
    end

    instance_eval(&block)
  end
end
Run Code Online (Sandbox Code Playgroud)

进入我的spec_helper.rb文件.

我已经设法把这个代码拿出来并在我的黄瓜步骤中运行它:

When /^I run the update_installers task$/ do
 @rake = Rake::Application.new
 Rake.application = @rake
 load "lib/tasks/rakefile.rb"
 @task = Rake::Task["update_installers"]

 for action in @task.instance_eval { @actions } …
Run Code Online (Sandbox Code Playgroud)

ruby rake rspec metaprogramming cucumber

14
推荐指数
3
解决办法
7170
查看次数

使用CSS为有序列表设置样式

我有一个HTML的有序列表.我想只为数字(1,2,3,...)添加样式,而不是列表项本身.

有没有办法参考这些数字?

谢谢 !

html css

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

Java编译器错误:尝试访问本地变量时"找不到符号"

$ javac GetAllDirs.java 
GetAllDirs.java:16: cannot find symbol
symbol  : variable checkFile
location: class GetAllDirs
        System.out.println(checkFile.getName());
                           ^
1 error
$ cat GetAllDirs.java 
import java.util.*;
import java.io.*;
public class GetAllDirs {
    public void getAllDirs(File file) {
        if(file.isDirectory()){
            System.out.println(file.getName());
            File checkFile = new File(file.getCanonicalPath());
        }else if(file.isFile()){
            System.out.println(file.getName());
            File checkFile = new File(file.getParent());
        }else{
                    // checkFile should get Initialized at least HERE!
            File checkFile = file;
        }
        System.out.println(file.getName());
        // WHY ERROR HERE: checkfile not found
        System.out.println(checkFile.getName());
    }
    public static void main(String[] args) {
        GetAllDirs …
Run Code Online (Sandbox Code Playgroud)

java file

0
推荐指数
1
解决办法
2024
查看次数

代码在symfony中的每个操作之前运行

我有一些代码,我希望在调用每个动作之前执行它.我可以使用动作挂钩吗?

php symfony1

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

检查List <T>日期的最快方法

我有一个机器已经处理的日期列表,但它没有包含机器停机的日期.我需要创建一个工作日但没有工作的列表.我不确定这样做的最好方法.我已经开始通过递增范围的所有日期并通过每次迭代整个列表来检查日期是否在列表中.我正在寻找一种更有效的方法来查找日期.

class machineday
{
 datetime WorkingDay;
}

class machinedaycollection : List<machineday>
{
public List<TimeCatEvent> GetAllByCat(string cat)
{
  _CategoryCode = cat;


  List<machineday> li = this.FindAll(delegate(machinedaydummy) { return true; });
  li.Sort(sortDate);
  return li;
}

int sortDate(machinedayevent1, machinedayevent2)
{
  int returnValue = -1;
  if (event2.date < event1.date)
  {
    returnValue = 0;
  }
  else if (event2.date == event1.date)
  {
    //descending
    returnValue = event1.date.CompareTo(event2.date);
  }
  return returnValue;
}
}
Run Code Online (Sandbox Code Playgroud)

c# generics generic-list .net-2.0

4
推荐指数
1
解决办法
1277
查看次数

将标签转换为html实体

是否可以使用javascript/jquery使用任何可能的方式(如正则表达式或其他方式)将html标签转换为html实体.如果是,那怎么样?

例:

<div> 应转换为 &lt;div&gt;

注意:我不是在谈论服务器端语言.

html javascript regex jquery

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

cygwin和Windows路径冲突

如果我的Windows路径如下所示:

c:\ ruby​​ \ bin; c:\ cygwin \ bin

然后,当我进入cgywin并输入“ ruby​​”时,它将从c:\ ruby​​ \ bin中执行ruby,但是找不到安装在我的cygwin中的ruby。我必须排除该路径,以便cygwin从/ usr / bin执行该路径。

但是我需要那两个路径,因为我也想在Windows中运行ruby。

无论如何,cygwin都有自己的路径,而不继承Windows中的路径?

谢谢。

windows cygwin path

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

如何使用Solr/Lucene搜索值列表?

给出以下查询:

(field:value1 OR field:value2 OR field:value3 OR ... OR field:value50)
Run Code Online (Sandbox Code Playgroud)

这可以分解为更简洁的东西吗?基本上我有数百个类别ID,我需要在大类别ID(一次20-50)下搜索项目.在MySQL中,我只是使用field IN(value1, value2, value3)而不是(field = value1 OR field = value2 etc...).

Solr/Lucene有更简单的方法吗?

lucene solr

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