创建具有多个文件规范的强制更改列表的简单方法
我希望提交一个包含多个文件规范的更改列表,例如 ...this... ...file.h ...theother...Perforce 不会让我这样做。我可以从文件创建更改列表,但我确实希望有机会查看文件并输入评论。这是用于命令行解决方案。
I wish to submit a changelist with multiple filespecs, e.g. ...this... ...file.h ...theother.... Perforce won't let me. I could create a changelist from a file but I do want a chance to review the files and enter the comment. This is for a command-line solution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
如果您正在寻找 UNIX/*NIX 命令行解决方案,这将为您提供一个新的、干净的变更列表,并将编号保留在
$cl
中:If you're looking for a UNIX/*NIX command line solution, this will give you a new, clean changelist and keep the number in
$cl
:这是一个令人无限沮丧的问题。您应该能够从 Windows 命令行创建 p4 更改列表,而无需调用编辑器,方法是:
返回字符串类似于“Change 1500 created”。您可以解析更改列表。然后,您可以通过执行
以下操作来添加单独的文件规范: 或类似的操作。该解决方案相对重要的问题是无法修改描述。或者,您可以使用必要的描述、更改、客户端等字符串创建临时文件,并通过以下方式创建更改列表:
这看起来有点草率,但可能是脚本解决方案的最佳替代方案。
This is an endlessly frustrating problem. You should be able to create a p4 changelist from the Windows command line without invoking the editor by doing:
The return string will be something like "Change 1500 created." which you can parse for the changelist. You could then add individual filespecs by doing:
Or something along those line. The relatively significant problem with this solution is the inability to modify the description. Alternatively, you can create a temp file with the requisite Description, Change, Client, etc strings and create the changelist via:
This seems somewhat sloppier but may be the best alternative for scripting solutions.
根据 Michael Gilbert 的回答,您可以在 powershell 中编辑描述,如下所示:
要提取新的变更列表编号:
现在必须有一种更快、更简洁的方法来提取该数字?
编辑:将 findstr 重构为选择字符串
编辑:检索更改列表的更简洁的方法:
Based on Michael Gilbert's answer, you can edit the description in powershell like so:
To pull out the new changelist number:
Now there's got to be a quicker, neater way to pull out that number?
edit: refactored findstr to select-string
edit: neater way to retrieve the changelist:
您可以创建一个待定更改列表,然后将所需的所有文件移至该列表中,然后再提交。即使是从命令行,尽管我发现 p4V 更容易使用此功能。
http://www.perforce.com/perforce/ doc.current/manuals/cmdref/change.html#1040665
创建待处理的更改列表。
将文件移动到挂起的更改列表中。
You can create a pending changelist, then move all the files you want into that, before submitting it. Even from the command-line, although I find p4V easier to use for this functionality.
http://www.perforce.com/perforce/doc.current/manuals/cmdref/change.html#1040665
to create a pending changelist.
to move files into the pending changelist.
我今天刚遇到这个问题,@Martin 的回答非常有帮助。我想创建一个带有描述的变更列表,而不是将其留空,所以我使用他的命令作为起点,并将其调整为:
I just came across this question today, and @Martin's answer was very helpful. I wanted to create a changelist with a description instead of leaving it blank, so I used his command as a starting point and tweaked it into this:
这是一个单行代码,可以在 Windows cmd shell 中使用 p4 命令行和 Windows 标准 findstr 实用程序,并且不需要任何临时文件。
这将:
请注意,描述必须以制表符开头,即那个小“○”家伙。如果格式在进入 shell 的过程中中断,您可以使用 Alt-9 键入制表符。
Here is a one-liner that works in the Windows cmd shell with just p4 command line and the Windows-standard findstr utility and doesn't need any temporary files.
This will:
Note that the description must start with a tab character, which is that little "○" guy. If the formatting breaks en route to your shell, you can type a tab character with Alt-9.
类型
如果您的 P4EDITOR 是 vim,那么您将看到一个 vim 编辑窗口。转到命令模式并通过键入“
Then do
”选择“Files:”行之后的所有行如果您有多个这样的模式,
希望这会有所帮助!
Type
If your P4EDITOR is vim, then you will get a vim edit window. Goto command mode and select all the lines after the line "Files:" by typing
Then do
If you have multiple patterns like this,
Hope this helps!
这是 Maya (MEL) 的实现:
Here's an implementation for Maya (MEL):