English 中文(简体)
是否有办法将我的代码放在开放源码上,以便开放源项目改进我在当地的改动?
原标题:Is there a way to patch my code onto open source code, so as the open source project improves my changes would be tacked on locally?

不知道如何提出这一问题。 我想以成熟和积极更新的开放源项目为基础,利用该项目作为挖掘和学习的基础。 我愿补充我的当地来源的法典,但能够在改进的同时更新核心来源。

目标是不断更新基金会,在更新的建筑中增加我的代码(而不是经过改动,因为如果我刚才对来源进行编辑的话,想象会发生这种情况)。

是否有办法将我的代码放在更新的项目代码上,这样,如果核心来源得到更新,我的改动将仍然独立于基础? 我确信,这样做有简单的方法,但我对方案拟定/文件/文件控制有新鲜之处,并且把什么或哪里看。

最佳回答

http://svnbook.red-bean.com/en/1.1/ch07s05.html“rel=“nofollow noreferer”>SVN Vendor Branches

基本上,你只把项目基线版本存放在你的存放处,然后将项目不同版本的改动合并为你的空白。

例如:

svn import ./projectdir svn://repourl/project/branches/vendor/current/ -m  Home for current core version of source code 
svn copy svn://repourl/project/branches/vendor/current/ svn://repourl/project/branches/vendor/1.0.0/ -m  1.0.0 tag of core source code 
svn copy svn://repourl/project/branches/vendor/current/ svn://repourl/project/trunk/ -m  Initial trunk commit of 1.0.0 

我们现在的情况是:

  • A "current" branch that has the most up to date version of the core code you are using.
  • A "1.0.0" tag of the core code (you should not commit any new changes to this tag)
  • Your trunk, which now has 1.0.0 of the core code.

现在,请你说,几个月来,你一直在该项目上工作,并用你tru子对该项目进行了更新。 核心第1.0版已经推出,你希望利用一些新特点,而不要失去你现有的工作。

你可以为此利用你的供应商分支机构。

svn co svn://repourl/project/branches/vendor/current/ ./project

* <>Exstrong>extract edition 1.1.0 on high of the working拷贝 * E/CN.6/2009/1。

svn status | grep -E  ^?  | xargs svn add # add all new files/directories to the project
svn status | grep -E  ^!  | xargs rm -rf  # remove all files/directories from the project that have been deleted
svn commit -m  Version 1.1.0 of the core code 
svn copy svn://repourl/project/branches/vendor/current/ svn://repourl/project/branches/vendor/1.1.0 -m  Tag for 1.1.0 
rm -rf ./project

现在,我们做了些什么? 我们:

  • A tag for version 1.0.0 of the project
  • A tag for version 1.1.0 of the project
  • A trunk with a modified version of the project that we want to bring up to date.

因此,我们需要做些什么? 简单合并。

svn co svn://repourl/project/trunk ./project
svn merge svn://repourl/branches/vendor/1.0.0 svn://repourl/branches/vendor/1.1.0 ./project

您在上文行文中所说的话主要是: “根据项目1.0.0和项目1.0之间的差别,将这些差异并入我修改的项目版本”。

对大多数档案来说,合并将是顺利和没有痛苦的。 对于你和社区同时修改的其他人,SVN将抱怨冲突。 除非你作出“明星”的大规模改变,否则这些冲突不应混淆。 我建议为“冲突后解决冲突”选择“<>p”,并利用TortoiseSVN解决。 这样做非常容易。

一旦你们的冲突得到解决,我们就会走到前面,考验其应用。 如果所有工作都按预期进行,请填写<代码>svn commitments。

页: 1

www.un.org/Depts/DGACM/index_spanish.htm 关于这一主题的更多参考材料:

问题回答

我认为,最近一点是,首先在贵国的SVN存放地的露天源代码上,然后将其分门,并对该处作出修改。 在更新《最低实务安保标准法》时,你将更新该空白,然后将其从中继。 届时,你将解决在变化和你改变之间可能发生的任何冲突,主要是“安排”对你的法典的改动。

你可以在当地安装一个源控制系统。

从项目服务器上向项目服务器发送了来文方的副本。

之后,你们的变革就更重要了。

当参考项目得到更新后,该参考项目得到新的复制件,然后将这些its子并入经修改的法典。 事实上,你如何做到这一点将取决于你选择的源控制制度。

然而,如果项目源控制支持分行(应当如此),你就可以在其服务器上设立一个分行,并在服务器之间合并,这可能非常容易。

虽然我亲自通过汞这样做,但你可以查看quilt

http://www.coffeebreaks.org/blogs/wp-content/archives/talks/2005/quilt/quiltintro-s5.html”rel=“nofollow noreferer”overview

在特别志愿人员协会中,这样做的方法是检查该守则的一份工作副本,对工作复印件作出修改,然后当您的<编码>svn Update时,它将从存放处收集该守则的最新版本,同时保持当地的变化。 如果存在任何冲突,它将通知你。

我认为,关于分管、合并和分配版本控制系统的答案(viz. Mercurial、Gite)比你所需要的更为复杂。

It looks that your usecase exactly match the Mercurial Queue mechanism. I would say that even for a complete newbie to mercurial it s damn easy to set up and maintain.

使用不同的现代版本控制系统。 一位好的候选人将被用于全世界范围内的发展工作。 branch和mer合比 s更自然。





相关问题
Tracking Versions, Builds, Revisions, with TortiseSVN

I am the sole developer on a project and have been using tortoiseSVN for quite a while. Now Id like to start getting version information working correctly in the project I.E. show Major Version, Minor ...

Tips on upgrading CVS to git/hg?

We still use CVS, I use git and hg for my personal use though I m still a novice at both, but I realize they re much more modern and better, faster, distributed, etc. It s just everyone is so ...

How to handle different csproj [closed]

I am working in a team of five. We are working on a C# application with five csprojects. The problem is that for each csproject, each of my colleagues has their own ideas on how to reference a DLL; ...

Changing username in SVN+SSH URI on the fly in working copy

I am using SVN+SSH to check out a working copy of repository from an SVN server on which all developers are members of a developer group and have full read/write permissions on the repository ...

How to search for file in subversion server?

Is there a way to search for a file in a subversion repository? Something similar to Unix find command, with which I can find the location of a file in a repository. I know there is svn list, but ...

热门标签