问:其他版本控制工具的status命令的perforce等价物是什么?
E.g。 git status
或hg status
或bzr status
或svn status
? (令人困惑的是,cvs update -nq
是最接近该版本控制系统的东西。)
提示:它不是p4 status
。
首先,p4 status
不会告诉您有关挂起的更改列表中的文件。您需要为此调用p4 opened
,但输出格式完全不同。
其次,p4 status
并不总是只读状态命令。我认为我在默认情况下最初发布此版本时使用的perforce版本实际上更改了工作区的状态 - 它实际上将本地更改添加到待处理的更改列表中。但我可能会记错。该公司使用了非常旧版本的perforce。截至我更新此版本时,使用2014年4月4日的perforce客户端版本,默认p4 status
行为是只读的,但如果您不这样做,请注意不要使用-A
选项#39;我想对工作区进行更改。
看起来需要p4 status
和p4 opened
的某种组合来获得其他VCS在单个命令中所做的最低限度。
DETAIL:
大多数版本控制系统都有一个可以快速告诉您工作区状态的命令。信息如:
提供的状态信息究竟取决于VCS。例如。 Perforce是基于结帐的,但大多数现代版本控制工具都没有。
但是......几乎所有版本控制工具都有一个简单的命令,可以告诉你这种状态。
显然,除了perforce。
...我可以继续提供git / hg / bzr / svn状态在单个命令中执行的示例,但是perforce似乎至少需要提供两个命令。
答案 0 :(得分:1)
我一直说我不喜欢回答我自己的问题,但我会在这里做。我欢迎任何想要分享更好的解决方案和脚本的人。我特别欢迎有人向我展示这是不必要的,Perforce确实具有相当于svn/git/hg/bzr status
。
--- + A:git/hg/bzr/svn status
= p4 opened
+ p4 status
在perforce中,似乎需要至少两个单独的命令来估计其他VCS工具使用单个命令执行的操作,以便快速汇总工作站的工作空间状态:
p4 opened
- 有关您在工作区中打开的文件列表
p4 status
- 有关未在Perforce中签入的文件列表。
** --- + OLD:p4 reconcile -n
代替p4 status
**
旧版本的perforce p4 status
默认情况下p4 reconcile
就像git/hg/bzr/svn status
一样对工作区进行更改,例如添加到工作区。或者在我写这个页面的时候我坏了。
新功能:p4 opened
= p4 status
+ git/hg/bzr/svn status
**
新功能:p4 opened
= p4 reconcile -n
+ p4 reconcile -n
**
p4 reconcile -n
- 表示未经过强制打开的文件列表,但您已对其进行了本地更改。
(p4 status
说"不做任何更改。)
-n告诉调和不做任何更改。不再需要 - 现在p4 $P4OPTS opened
p4 $P4OPTS status | sed -e 's/ - / - RECONCILE TO MAKE: /'
默认为只读。
OLD: p4 $ P4OPTS开盘了 p4 $ P4OPTS调和-n | sed -e' s / - / - 重新制作:/'
--- +适合别名或快速输入
我将这些结合起来如下:
my-p4-status
sed部分可以更好地区分perforce已经打开的文件的状态与未在perforce下打开的文件的状态。但我注意到这是不安全的,当一个文件可能有字符串" - "以它的名字。
--- + Fancified
因为我经常需要本地路径,所以我目前使用以下shell脚本reconcile -n
来给我一些更像我从其他VCS中习惯的东西' status command =。
以下脚本使用旧的status
,尚未更新为使用#!/bin/bash
# Perforce lacks a single command to tell you the status of a workspace,
# the equivalent of hg/bzr/git status.
# Warning: "p4 status" is not actually a read-only query!!!
# "p4 status" is more like "p4 reconcile" - it actually opens files to edit, add, or delete (-e -a -d)
# p4 opened only reports on the status of files currently opened by Perforce
# It is necessary to combine "p4 opened" and "p4 reconcile -n" to get a net overview.
# TBD: convert to local file path, rather than depot path.
# (Not a simple sed-xargs-p4_fstat pipeline)
P4OPTS=''
if [ "$1" == "-ztag" ] || [ "$1" == "-verbose" ]
then
shift
P4OPTS="-ztag"
fi
case $P4OPTS in
-ztag)
p4 $P4OPTS opened
p4 $P4OPTS reconcile -n
;;
*)
echo '#### p4 opened - Perforce files already opened ###'
p4 $P4OPTS opened
echo '#### p4 reconcile -n --- local edits, not opened in Perforce. Run p4 reconcile to actually open. ###'
p4 $P4OPTS reconcile -n | sed -e 's/ - / - RECONCILE TO MAKE: /'
esac
。
<input
type="button"
class="stripeBtn"
value="Proceed to Checkout"
data-key="***"
data-description="***"
data-amount= ***
data-currency="usd"
data-name="***"
data-billing-address="true"
data-shipping-address="true"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"/>
--- +更好?请分享!
如果您有更好的信息,请分享。