我想从我的一个签到中撤消更改.在特定更改列表的右键单击上下文菜单中,有以下两个选项:
这两者有什么区别?在什么情况下我应该使用哪一个?
那里有很多"Git for Perforce用户"文档,但看起来很少相反.
我之前只使用过Git,最近开始了一项工作,我必须经常使用Perforce,并且发现自己很多时候都很困惑.我从Git习惯的概念似乎根本没有映射到Perforce.
是否有人有兴趣为一些习惯Git的人使用Perforce整理一些技巧?
我是Perforce的新手,并创建了一些工作空间作为熟悉它的练习.现在我想删除一些工作区.我只是想摆脱工作空间,让他们不要在工作空间视图(下拉出现不希望与实际的库文件做任何事情).
谷歌搜索答案产生"使工作区激活"的建议(我想这意味着在工作区下拉列表中选择它?)然后从"编辑"菜单中删除它.不幸的是,当我尝试这个时,删除选项显示为灰色.
任何人都知道如何做到这一点,或者我只需要忍受垃圾工作区?我已经从磁盘中删除了其中一个,它仍然出现在工作区下拉列表中,我现在甚至无法将其与软件仓库同步,所以我想这不是怎么做的.
偶尔出现的问题是确定您上次在Perforce中同步的更改列表的最佳方法.这通常需要通过自动构建系统将更改列表编号注入修订信息中.
我有时使用的功能"对账脱机工作......"在Perforce中的P4V IDE中发现同步起来,我已经从P4车厂工作,同时断开任何文件.它启动另一个窗口,执行'Folder Diff'.
我有文件,我从来不想检查源代码控制(如在bin文件夹中找到的DLL,代码生成输出等)有没有办法过滤这些文件/文件夹出现可能是"新"添加.它们往往会混淆我真正感兴趣的文件列表.P4是否具有Subversion的"忽略文件"功能?
在p4v中查看提交的更改列表时,有没有办法显示特定的更改列表编号?也就是说,我如何p4 describe在p4v中完成相同的操作?我可以过滤特定的变更清单编号吗?我不知道怎么样.
任何人都有一个脚本或别名来查找Perforce树中未跟踪(真的:未添加)的文件?
编辑:我更新了这个问题的答案,因为看起来P4V在2009年1月的版本中增加了对此的支持.
所以我正在让GIT在工作中出售.我需要的第一件事就是让每个人相信GIT在他们已经习惯做的事情上做得更好.我们目前使用Perforce.还有其他人经历过类似的销售吗?有什么好的链接/建议吗?
其中一个重大胜利是我们可以与网络断开连接.IMO的另一个胜利是处理添加/结账的方式.欢迎更多积分!我们总共有10-20个开发者.
我一直在使用Perforce多年.我想切换到使用git作为我的个人代码,但是我见过的所有git教程都假定你是一个完整的源代码控制n00b(这使得它们非常繁琐)或者你已经习惯了svn(我不是).
我知道p4,我也理解分布式源代码控制系统背后的想法(所以我不需要销售推销,谢谢).我想要的是从p4命令到等效git命令的转换表,以及没有p4等效的"不能没有"命令.
因为我怀疑每个p4用户都使用了不同的p4子集,所以这里有一些我经常在p4中做的事情,我希望能够在git中完成这些事情,这些事情从我看过的文档中看不出来:
p4 change)p4 change)p4 changes -s pending)p4 opened)或待定更改列表(p4 describe)中所有已更改文件的列表p4 diff和p4 describe)p4 annotate)p4 log)p4 submit -c)p4 revert)其中很多都围绕着"变革清单"."changelist"是p4术语.什么是git等效术语?
听起来像分支可能是git用户使用的代替p4调用更改列表的东西.有点混乱,因为p4也有一个叫做分支的东西,虽然它们似乎只是模糊的相关概念.(虽然我一直认为p4的分支概念非常奇怪,但它与分支的经典RCS概念不同.)
无论如何......我不知道如何通过git的分支来完成我通常在p4更改列表中所做的事情.在p4中,我可以这样做:
$ p4 edit a.txt
$ p4 change a.txt
Change 12345 created.
Run Code Online (Sandbox Code Playgroud)
此时我有一个包含a.txt的changlist.我可以编辑说明并继续工作而无需提交更改列表.此外,如果事实证明我需要对其他一些文件进行一些更改,比如在代码的某些其他层中说错误修复,我可以在同一个客户端中执行此操作:
$ p4 edit z.txt
$ p4 change z.txt
Change 12346 created.
Run Code Online (Sandbox Code Playgroud)
现在我在同一个客户端有两个单独的更改列表.我可以同时处理这些问题,而且我不需要做任何事情来"切换"它们.在提交时,我可以单独提交:
$ p4 submit -c 12346 …Run Code Online (Sandbox Code Playgroud) 我们正在使用Perforce和Visual Studio.每当我们创建一个分支时,除非我们使用"从源代码管理中打开",否则某些项目不会被绑定到源代码控制,但其他项目无论如何都可以工作.从我的调查中,我知道一些涉及的事情:
在我们的.csproj文件中,有以下设置:
有时它们都被设置为"SAK",有时不是.如果这些说"SAK",事情似乎更有可能奏效.
在我们的.sln文件中,有许多项目的设置:
(#是标识每个项目的数字.)SccLocalPath是相对于解决方案文件的路径.通常它是".",有时它是项目所在的文件夹,有时它是".."或"..\..",它似乎不好指向上面的文件夹解决方案文件 相对化的是从该文件夹到项目文件的路径.如果SccLocalPath指向项目的文件夹,它将完全丢失.如果SccLocalPath中包含"..",则此路径可能包含分支之间不同的文件夹名称,我认为这会导致问题.
所以,最后要了解我想知道的细节:
2012年6月添加: 我不再使用Perforce了,所以我不能保证它,但请看下面的KCD答案.显然有一个新的P4 VS插件正在开发中.希望它能清除所有这些混乱!