指定された時間枠内にモジュールのブランチまたはヘッドに作成されたタグのリストを取得するために使用できるCLIコマンドはありますか?
私が簡単に必要なのは、タグのリストとタグが作成された日付です。次のパラメータが与えられた場合
次のコマンドを使用して、モジュールに存在するタグまたはブランチを一覧表示できます。これは SOでの別の回答 からピックアップしたものです
すべてのタグを一覧表示するには:
cvs -Q -d :pserver:*User*:*Pass*@*HostName*:/cvsroot rlog -h *Module*| awk -F"[.:]" '/^\t/&&$(NF-1)!=0{print $1}' | sort -u
すべてのブランチをリストするには:
cvs -Q -d :pserver:*User*:*Pass*@*HostName*:/cvsroot rlog -h *Module*| awk -F"[.:]" '/^\t/&&$(NF-1)==0{print $1}' | sort -u
これは、マジックブランチ番号を使用して、シンボリックリンクがブランチまたはタグであることを識別します。
このページの回答の1つでskaffmanが述べたように、タグが作成された日付を判別することはできません。最善の方法は、そのタグのログにリストされている最新の日付を考慮して、おおよその日付を識別することです。
このようなもの:
cvs -Q -d :pserver:*User*:*Pass*@*HostName*:/cvsroot rlog -N -S -r*TagName* *Module* | grep ^date: | sort | tail -1 | cut -d\; -f1 | sed -e 's/date: //'
これは、すべてのタグとその約のリストを提供するために作成したbashスクリプトです。作成日
#!/bin/bash
CVSROOT=$1
PROTOCOL=$2
LOGIN=$3
PASSWORD=$4
MODULE=$5
REVISION=$6
OUTPUT=$7
CVS_Host=""
if test "${PASSWORD:-t}" != "t" ; then
CVS_Host=":${PROTOCOL}:${LOGIN}:${PASSWORD}@${CVSROOT}"
else
CVS_Host=":${PROTOCOL}:${LOGIN}@${CVSROOT}"
fi
CVS_REVISION=""
if test "${REVISION:-t}" != "t" ; then
CVS_REVISION="-r${REVISION}"
fi
echo "\"Tag Name\",\"Create Date\"" > ${OUTPUT}
echo "EXEC: cvs -Q -d ${CVS_Host} rlog -h -S ${CVS_REVISION} ${MODULE} | awk -F"[.:]" '/^\t/&&\$(NF-1)!=0{print \$1}' | sort -u"
cvs -Q -d ${CVS_Host} rlog -h ${CVS_REVISION} ${MODULE} | awk -F"[.:]" '/^\t/&&\$(NF-1)!=0{print $1}' | sort -u | while read tagName
do
#get approx create date
echo "EXEC: cvs -Q -d ${CVS_Host} rlog -N -S -r$tagName ${MODULE} | grep ^date: | sort | tail -1 | cut -d\; -f1 | sed -e 's/date: //'"
date=`cvs -Q -d ${CVS_Host} rlog -N -S -r$tagName ${MODULE} | grep ^date: | sort | tail -1 | cut -d\; -f1 | sed -e 's/date: //'`
#Save to output file
echo "\"$tagName\",\"$date\"" >> ${OUTPUT}
done
私はたった今学んだ:
cvs status -v
各ファイルのすべてのタグとブランチを、ファイルが属するリビジョンとともに一覧表示します。
あなたはそこから働くことができます...
履歴機能を有効にしている場合は、次のコマンドを実行できます。
cvs history -a -T
次のような行が表示され、各タグ付け操作の日付と時刻、ユーザー、モジュール、タグ名が表示されます。
T 2011-04-02 07:55 +0000 ralph mylib [testtag:A]
詳細については、 履歴に関するcvsbook を確認してください。
CVSはそれを行うことができません、それはあまりにも原始的です。タグは、モジュールやリポジトリではなく、個々のファイルリビジョンに添付されます。さらに、タグには日付のメタデータがないため、タグがいつ作成されたかもわかりません。
したがって、指定した選択基準はどれも使用できません。 can使用する唯一の基準は、特定のバージョン管理されたファイルです。これにより、どのリビジョンにどのタグが付いているかがわかりますが、それだけです。
私はcvsnt(install)を使用してCvsリポジトリを使用しています..
クエリ:
1)cvsのタグ名のリストのみが必要です。
2)cvsntを使用してリポジトリを作成する方法。
3)モジュール全体を新しいリポジトリにチェックインする方法。
私はサンプルを試します:
1)新しいリポジトリを作成しようとしたとき
cvs -d :pserver:<user>@<Host>:<new_repository> init
2)モジュールをリポジトリにインポートする
cvs -d repository_path import name_of_project vendor_tag release_tag