我有一个大型的软件项目,有些人刚刚开始倾倒东西(而不是创建开发分支!!! ARG !!),因为他们进行了全面的更改。他们所做的一些事情存在问题,当然他们正在度假。所以我使用Perforce尝试在特定时间点获得基线。 Perforce声称在那个时间点获取所有文件,但它没有构建。我知道它最初构建了,因为我们的CruiseControl在历史上的那一点成功构建了它。
Perforce显然出现了问题。 下面是一些神话般的ASCII艺术,展示了Perforce的签到结构。字母表示不同的开发人员,数字表示他们的签到。
Newest
D 18
D 17 Changed the contents of the files in D 16
D 16 They did some `move/delete` and `add/delete` here
D 15
D 14
D 13
D 12
C 1
B 2
D 11
D 10
D 9
D 8
D 7
D 6
D 5
D 4
A 3
A 2
D 3
D 2
D 1
B 1
A 1
Oldest
D18不起作用。 D17确实如此,但我想在B2测试以简化操作。
C1是CruiseControl版本,它在上周构建时运行得很好。它只更改了文本文件中的版本号。没什么大不了的。
我想要B2,所以我做一个力量获得B2。它没有构建,即使它在我检查时也是如此。所以我删除所有文件并执行强制获取B2。它仍然没有建立。我想知道我能做些什么,最后决定尝试更早。
如果我一路向下并获得A1,它就会建立起来。然后我可以获得B2并且它将构建(即使我删除了A1中的所有文件!!)。我可以继续上升到D16,这不会构建。 D17确实建立了。有趣的是,当我走上树,从最旧到最新,B2构建并运行良好。当我从D16或更新的树上下来时,B2不会构建也不会运行。如果我从A1开始,然后从树上到D15然后再回到树下B2,它就会构建并运行。一旦我得到了D16,没有旧版本,除非我一直回到A1。我不明白联系/问题。 A1和D16之间似乎根本没有联系。 A1是一个简单的数据文件更改,甚至没有编译。 A1之前,这些人开始将彻底的变化倾注到基线,但即便如此,我希望Perforce能够复制一个变更列表精确同样向任何一个方向移动。
我的印象是,如果我在某个特定的更改列表上执行“强制获取”,那么我将会得到 - 在那个时间点检查的所有(是的,我知道你可以要求Perforce只给你那个changelist的文件,但我没有这样做。)
Force
获得。 我现在可以构建,但我希望能够信任我的配置管理工具。我错过了什么?还有哪些其他信息可以帮助调试这个?
编辑我的环境:
其他更新: 虽然这可能并不是完全相关的,但我只是遇到了这样一种情况,即GUI,P4V被混淆并使其看起来像后端混淆了,当它不是时。
当我没有时,GUI声称我已编辑并删除了一行文件。我做了最新的力量,它仍然看起来像它。我删除了文件,然后得到了最新版本,它仍然声称我编辑了它。我关闭P4V并重新打开它,找到文件就像我预期的那样。不知何故,GUI变得混乱。所以要点:如果它看起来很奇怪,重新启动GUI,看看是否有帮助。 也许这可能对我上面的问题有帮助。