小编Mar*_*ler的帖子

调整svn:externals用法以移动到Mercurial

我们在企业环境中有一个svn存储库结构,如下所示:

root
  libs
    shared_lib1
    shared_lib2
    private_lib
  public_code
  private_code
Run Code Online (Sandbox Code Playgroud)

其中public_code是一个外部存储库,它是开源的,公司外部的人员具有读写访问权限.shared_lib1和shared_lib2也是与另一家公司的不同程序员组共享的外部存储库.我是维护者,基本上可以做任何技术上最好的,外部用户必须适应.

我现在想知道从这个结构转移到mercurial存储库的最佳方法是什么.

1)我可以使用mercurial子存储库来密切模拟旧的设置.或者
2)我可以为我们制作一个大型仓库,为外部合作伙伴创建三个新的小型独立存储库(基本上是分支项目),并在大型和独立的交换机之间交换变更集.

使用svn中的setup 1),分支是一场噩梦,因为当我分支root时,策略总是必须分支public_code,shared_lib1和shared_lib2.为此,我必须调用svn分支四次并手动修改svn:externals属性三次.我可以轻松地将主仓库分支到mercurial并自动获取所有子仓库的新分支吗?

当我设置2)时,repos之间的文件系统会有所不同.例如,我将在repo"root"中使用public_code/Makefile,但该文件将只是repo"public_code"中的"Makefile".Mercurial仍然能够同步回购之间的变化吗?工作流程怎么样?

svn mercurial branch externals subrepos

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

适用于.NET的Mercurial API

我想为mercurial创建一个.NET客户端.没什么好看的,只是基本的东西.

.net api mercurial

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

进入源代码管理

所以我决定,如果我得到一些源代码控制解决方案,以保证我的努力工作安全,并帮助根除版本之间的错误,这可能是最好的.

我对SVN很熟悉,只要检查一下这些东西,但我有关于事情的承诺方面的NFI.

什么是良好的源代码控制解决方案,请记住我在Windows上的Visual Studio中开发?我应该获得托管解决方案,还是自己在我自己的服务器上托管(运行Windows Server '03)

svn windows version-control visual-studio

3
推荐指数
2
解决办法
421
查看次数

hg状态第一次很慢

有人知道为什么hg status在Windows客户端上第一次从命令行调用时速度很慢(3-10秒)(我假设它在之后被缓存).

hg status 是一个本地操作,它不应该花那么长时间,特别是空的回购.

在具有多个更改的活动存储库和没有文件的全新存储库中都是这种情况.因此,回购的大小似乎不是性能的一个因素.谢谢!

mercurial tortoisehg

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

分配mercurial全局变更集ID

显然,Mercurial会为每个更改分配一个全局变更集ID.他们如何确保这是独一无二的?

mercurial sha1 dvcs changeset

3
推荐指数
2
解决办法
631
查看次数

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

在两台服务器上共享一个mercurial存储库

我正在开发一个托管在Bitbucket上的项目.我还想在连接到本地Intranet的办公室服务器上安装相同的项目,这样当我在我的系统上提交时,我可以推送到两个存储库(Bitbucket和我的本地服务器).

如果互联网不可用,整个设置应该是用户可以在本地版本上进行协作,当它可用时,他们可以更新在线版本.

collaboration mercurial bitbucket code-sharing

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

Emacs非常缓慢地创建缓冲区

在我的机器上,Emacs在创建缓冲区时需要一个长文件:打开文件或目录时,或启动时M-x shell.暂停是10-15秒,真的很烦人.

当我打开大约150多个缓冲区(大多数是我的机器上的文件和目录;有~5 cmd支持的shell缓冲区;没有远程文件)时,似乎会出现此问题.

我运行了全局自动恢复模式,但即使关闭它,问题仍然存在.

我有这个东西,发现在StackOverflow的某个地方.emacs,但它没有帮助:

(setq w32-get-true-file-attributes nil)
Run Code Online (Sandbox Code Playgroud)

我的环境:Emacs 23.2.1,Windows 7.您对我可以尝试的内容有什么建议吗?

windows emacs

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

在没有--svn的Rebase之后修复HgSubversion Repo

我很高兴使用HgSubversion一段时间,今天我忘了添加--svn到rebase命令.现在我得到了可怕的未知版本''

有没有办法从中恢复?

mercurial hgsubversion

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

将Git工作流转换为Mercurial

我一直在使用Git,我想把我常用的工作流转换为Mercurial.特别是,我有兴趣转换我将用于贡献给Git项目的工作流程,以便能够为Mercurial项目做出贡献.

通常,对于GitHub上的项目,我会从原始项目中将项目分配到GibHub上,然后使用两个不同的远程名称在本地获取:

# Clone the initial repository and call the remote repository 'github-origin'
git clone -o github-origin git://github.com/orig_author/project.git

# Add the forked GitHub repo as an additional remote repo ('github-mine')
cd project
git remote add github-mine git://github.com/me/project.git
git fetch github-mine
Run Code Online (Sandbox Code Playgroud)

当我列出分支时git branch -a,我得到这样的东西:

* master
  remotes/github-mine/some_feature
  remotes/github-mine/master
  remotes/github-origin/HEAD -> github-origin/master
  remotes/github-origin/some_feature
  remotes/github-origin/master
Run Code Online (Sandbox Code Playgroud)

我可以创建自己的本地分支git checkout -b new_feature,然后将其推回到我的GitHub存储库,从而添加两个引用:

* my_feature
  remotes/github-mine/my_feature
Run Code Online (Sandbox Code Playgroud)

然后我可以联系原作者讨论这个功能,提交拉取请求等等.所有这些工作流程实际上都独立于原作者的工作时间线.这使得在不规范主项目存储库的情况下讨论实验性功能变得非常容易.

如果原作者提交了更多更改,我可以跟上git fetch github-orig并可能相应地合并或修改我的本地更改.作为快速测试(假设当前分支是my_feature):

git fetch github-origin
git checkout -b temp
git rebase …
Run Code Online (Sandbox Code Playgroud)

git mercurial dvcs github bitbucket

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