Mercurial:推送从外部源更改的文件
我知道这是一个复杂的场景,但这是我的情况。我们有 正在更新并发布到SharePoint的文件(*.doc)。我要用Mercurial的。我们有一个脚本,可以将这些文件导出到标记为mercurial存储库(克隆)的windows共享中,目的是自动将文件推送到中心mercurial存储库中 文件的初始导出导致这些文件被标记为未版本。简单的Mercurial:推送从外部源更改的文件,mercurial,Mercurial,我知道这是一个复杂的场景,但这是我的情况。我们有 正在更新并发布到SharePoint的文件(*.doc)。我要用Mercurial的。我们有一个脚本,可以将这些文件导出到标记为mercurial存储库(克隆)的windows共享中,目的是自动将文件推送到中心mercurial存储库中 文件的初始导出导致这些文件被标记为未版本。简单的 hg add hg push 将文件移动到所需的中心repo。这些文件每晚自动导出(覆盖文件)到windows共享。但mercurial不承认有任何变化 h
hg add
hg push
将文件移动到所需的中心repo。这些文件每晚自动导出(覆盖文件)到windows共享。但mercurial不承认有任何变化
hg status
结果是空的
我的问题是,我如何才能让Mercurial认识到这些变化,从而推动它们
谢谢我的理解是你们有两个回购协议,一个是中央回购协议的克隆。从这里开始,你必须把它们当作单独的存储库。 hg状态仅显示
工作副本
与repo中原始文件之间的差异(.hg目录
)
对回购进行更改将显示在hg日志中
而不是hg状态中
这是一个正常的程序
+------+ +------+
|Repo A| |Repo B|
+------+ +------+
New File | |
.............> | |
| hg add |
| hg commit |
Files in repo A | |
--------------- | |
| hg push |
|------------------ | Files in Repo B
| hg pull |
| | hg update
| | hg status (empty)
| | hg log (Will show new
version )
此外,MS word文档文件将被视为二进制文件,您可能无法充分利用版本控制
很抱歉有点迂腐,但repo和工作目录之间的差异造成了足够的混乱。在repo中拉入的文件将只显示为hg update
:
+------------+ +---------+
|Your working| |Your Repo|
|directory | |.hg dir |
+------------+ +---------+
| |
| hg status |
|-----------------------------|
| shows difference between | hg pull <--
| working dir and repo |-------------
| | <-- hg push
| | from another repo
| |
| hg update | hg pull or push
| <-------------------------- | deals with repo
| This brings latest change | and not working
| version from repo to | dir
working dir
+-------------++---------+
|你的工作| |你的回购|
|目录| |.hg dir|
+------------+ +---------+
| |
|汞状态|
|-----------------------------|
|显示| hg pull之间的差异您确定文件不同吗?或者它们被覆盖了?如果hg status结果为空,则表示文件未更改。您的工作流程中没有任何可能导致问题的特殊内容。如果目录中的文件发生了更改,Mercurial将看到它。@krtek是的,这些文件(或其中一些)是不同的。是的,它们被覆盖。您是对的,它们是两个独立的repo,正在“导入”到本地repo的文件正在被覆盖。同样,它们是二进制的,但我们主要关心的是能够区分更改,这可以通过Turtoisehg VisualDiff和DocDiff工具实现。被覆盖的文件根本不应该经过“hg add”路径。只有新文件应该通过“hg add”。只是想知道还有什么地方可能出了问题或者有什么不同。ThanksCorrect,在初始导出到工作目录时,hg status和hg add按预期工作。在任何后续导出中(在用户做出更改并发布到SharePoint之后),Hg都无法识别被覆盖的文件是否已更改。@TDF:这就是问题所在。如果要覆盖以前添加的文件,则不需要再次添加。是,但文件的上下文已更改。我不知道该如何推动中央回购协议的改变。