13

たくさんのファイルを含むチェンジリスト(PERFORCE)をチェックインし、チェンジリスト全体を元に戻したいとしましょう。チェンジリスト全体を一挙に「元に戻す」簡単な方法はありますか?

現在、チェンジリスト内のファイルごとに次のようなことをしています。

  • p4 sync // path / to / file#n(ここで、「n」はファイルの以前のバージョンです)
  • cpファイルfile#n
  • p4同期//path/ to / file
  • p4編集//path/ to / file
  • cpファイル#nファイル
  • rmファイル#n

ご想像のとおり、これは大規模なチェンジリストにとっては非常に面倒です。

4

6 に答える 6

8

投稿された回答は正しい回答を提供しますが、これを行うための実際のメニュー オプションが P4V にあることにも注意してください。これは最新の 2008.2 Beta に含まれているため、来週か 3 週間以内に正式にリリースされるはずです。

このリンクは詳細を提供します。

以前の回答よりもはるかに使いやすいはずですが、まだ自分で試す機会がありません。

更新これは完全にリリースされました。Perforce ダウンロードを参照してください。

于 2008-12-01T22:22:54.600 に答える
3

これは面白そうです。個人的には試していません。

于 2008-12-01T19:01:40.577 に答える
1

Perforce からの公式の回答はhttp://kb.perforce.com/UserTasks/ManagingFile..Changelists/RevertingSub..Changelistsにありますが、手順はあなたが提案したものよりもはるかに簡単ではありません。@ya23 が提案したスクリプトの方が見栄えがします。

于 2008-12-01T21:26:16.993 に答える
1

何らかの理由で、 awk ステップが機能しません。エミュレートされた Unix コマンド ライン ツールを使用して Windows 環境から実行しています。ただし、以下は機能します。

p4 describe -s [changelist_number] | grep // | sed "s/\.\.\. //" | sed "s/#.*//"  | p4 -ztag -x - where | grep "... path " | sed "s/\.\.\. path //"

Windows 環境で Unix コマンド ライン ツールを入手できる場所は次のとおりです。

http://sourceforge.net/projects/getgnuwin32/?source=typ_redirect http://unxutils.sourceforge.net/

于 2014-11-19T18:50:14.470 に答える
0

チェンジリスト全体を削除したいときも同じ問題があります。そのため、次のスクリプトを使用します (変更リストのシェルブと変更リスト自体も削除されることに注意してください。元に戻すだけの場合は、関連する行をコピーしてください)。また、sed が p4 のバージョンに適用されることを確認してください。

#!/bin/bash

set -e

if [[ $# -ne 1 ]]; then
echo "usage: $(basename $0) changelist"
    exit 1
fi

CHANGELIST=$1

#make sure changelist exist.
p4 describe -s $CHANGELIST > /dev/null # set -e will exit automatically if fails

p4 shelve -d -c $CHANGELIST 2> /dev/null || true # changelist can be shelveless
files_to_revert=$(p4 opened 2> /dev/null | grep "change $CHANGELIST" | sed "s/#.*//g")
if [[ -n "$files_to_revert" ]]; then
    p4 revert $files_to_revert
fi
p4 change -d $CHANGELIST
于 2014-03-03T11:02:57.780 に答える