代码之家  ›  专栏  ›  技术社区  ›  Avi

将代码与两个Subversion存储库同步

  •  1
  • Avi  · 技术社区  · 17 年前

    在这里搜索,我发现这个问题是 already asked 但我觉得我的情况更糟!-(

    我是互联网存储库开发的新手。 A book 我正在阅读一个有趣的示例项目-ASP.NET中的社交网络。作者将代码作为代码丛 project .我试图通过visualsvn(subversion)来“获取”这个版本,但失败了。因此,我所做的就是将代码作为zip文件下载(即断开与项目存储库的连接),创建自己的本地存储库,并开始修改代码。

    现在codeplex的呼吸开始活跃起来。我想做的是不断地将更改从codeplex存储库获取到本地库,并偶尔将一些更改提交回codeplex存储库。

    这是可行的吗?

    4 回复  |  直到 17 年前
        1
  •  1
  •   Avi    17 年前

    我实际上做了什么,至少现在,只要交通 the CodePlex project 低:

    我下载了当前的codeplex 22875版本(作为zip)。幸运的是,在我开始玩这个项目之前,我已经将原来的16202 zip文件本地保存在我的计算机上(但我想我也可以从codeplex中得到它)。

    现在我的电脑上有两个文件夹:22875和16202。我所做的就是利用 Total Commander 比较两棵树,找出修改过的文件。我手动地将一些更改集成到我的代码中。

    我想 Beyond Compare 在集成方面会更好,但是我还不熟悉它,所以我坚持使用tc。

    要转到另一个方向,我想我必须检查当前的codeplex主干,手动集成我的更改,并提交更改。

    我能说什么呢?太糟了。但我的更改量如此之大,本地存储库比使用codeplex存储库更有意义。当codeplex使用svn时,我喜欢在本地与svn合作,我刚刚花了49美元购买了VisualSVN,我害怕git-unix黑客:-)

        2
  •  0
  •   Macke    17 年前

    不适用于基本SVN,因为它认为每个响应都是独立的,不允许跨回购进行合并。然后你必须手动合并。这可能是一种疼痛。

    注: 我错过了你的第一句话……多哈……我已经写了所有这些……啊……无论如何,希望它能有点帮助。:)

    正如您在其他问题中看到的,有一个新的东西叫做dvcs(分布式版本控制系统),它允许存在多个repo,并允许来回推/拉提交。有几个流行的版本,git,mercurial和bazaar。

    Git有点难用,IMO,但它非常支持与SVN存储库的桥接。

    当移动到分布式表单时,有一些新的东西需要学习,因为定义的数据模型更复杂。我不知道它是否适合你,但它确实支持你的要求。

    要应用它,您将使用自己的本地git repo,在该repo中导入不同的svn repo作为本地分支。然后将这些分支的更改合并到您的主开发分支中,在那里(本地)更改并提交内容,最后将更改合并到其中一个或两个SVN分支,然后将Git中的SVN分支作为新提交推送到SVN存储库。

    然而,Git是由Linux内核黑客开发的。受到警告。:)

    Mercurial对用户更加友好,但据我所知,它的SVN支持并没有那么好。不过我自己也没试过。

        3
  •  0
  •   David Aleu    17 年前

    如前所述,跨存储库不起作用。

    回到最初的问题,您是否尝试过使用svn命令行从原始存储库签出?

    从要使用工作副本的目录中: svn checkout svn://codeplex_储存库

    然后复制修改并像往常一样使用更新/提交与SVN同步。

    如果不熟悉svn命令行,下载tortoissesvn,是免费的,可以做这个工作。

        4
  •  0
  •   Community Mohan Dere    9 年前

    您可以查看描述的解决方案 here …我正在寻求实施同样的策略,在阅读了左右两侧之后,我倾向于使用SVK。 Heres 使用SVK的synk示例。