問題タブ [rcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
version-control - CVS リポジトリの RCS ファイル形式で、リビジョンとしての xy0.2 は何を示していますか?
バックグラウンド
CVS リポジトリからコードを回収しようとしています。私はreposurgeon
目的のために使用しており、git-fast-import
ストリームを取得するために次のツールを試しました。
cvs-fast-export
、エラーになります(循環分岐とされていますが、詳細は提供されていません)cvs2git
が続きgit-fast-export
、理解を超えて物事をマッシュアップしますgit-cvsimport
これはgit-fast-export
、これまでのところ最高の結果を生み出しますが、属していないブランチに何かを投げることになります。
この CVS リポジトリはさまざまな CVS バージョンで実行されており、タグとブランチは強制的に移動されています。これは、それらのブランチとタグをもうサルベージできないことを意味することを知っています。しかし、それはそうです。
それにもかかわらず、私は(さらに多くの中から)半ダースのブランチを持っており、ストリームMAIN
への変換中に保持することに興味がありgit-fast-import
ます。ターゲットの VCS はGit ではありませんreposurgeon
が、ポイントは入力をこのように処理し、出力もこのように処理することです。
アーティファクトを理解し、古いもの (孤立したリビジョンを含む) を前処理段階でrcs -o<rev>
(もちろん、私のレポのコピーで;)) きれいにするためには、どのようにrcsfile
フォーマット作業の内部。
rcsfile.py
からモジュールを変更した後の解析は簡単ですrcsgrep
。しかし、リビジョン番号、特に対応するデルタ+ログがないリビジョン番号が何を意味するかについての情報はまだ提供されていません。
私が見るもの
RCS ファイルのマニュアル ページによると、リビジョン ID の 3 番目のセグメントが 0 であってはなりません。
これが私がやったことです(実験として)。
- On
MAIN
: ファイルをコミットします (1.1
) - From
MAIN
: 分岐先BranchX
(1.1
) - オン
BranchX
: ファイルを変更します (1.1.2.1
) - オン
BranchX
: ファイルを再度変更します (1.1.2.2
) - オン
MAIN
: ファイルを変更します (1.2
) - オン
MAIN
: ファイルにタグを付けるfoobar
(1.2
) - From
MAIN
: branch toBranchX
、branch タグ ( ) を移動1.2
し、前のブランチを事実上孤立させます。1.1.2.x
- On
BranchX
: ファイルを削除 (1.2.2.1
) - オン
MAIN
: ファイルを変更します (1.3
) - オン
MAIN
: ファイルに強制的にタグを付けるfoobar
(1.3
) - オン
MAIN
: ファイルを変更します (1.4
) - オン
MAIN
: ファイルにタグを付けるfoobarbaz
(1.4
)
上記のリストと以下の完全に再現されたファイルでわかるように、1.2.0.2
ログ付きデルタの形でのリビジョンはありません。
今私の質問
リビジョンを新たに分岐するとx.y
(ファイルの変更はありません!)、結果のリビジョン ID はx.y.0.2
. これは、私が見て質問している謎のリビジョン ID に似ています。
0
ファイルにデルタがないことを示しているので、実際の内容については祖先に戻る必要がありますか?- それとも、0 は単にそのブランチの「ルート」を示し、4 番目のセグメントがそのブランチの最新リビジョンであることを示していますか?
誰かがこれらの質問に光を当てたり、上記のリンクされたマニュアルページよりも包括的な資料を指摘したりできますか?
以下は、完全な RCS ファイルです。
git - rcs co on .v ファイルが 0kb ファイルを作成するのはなぜですか?
OS とツールの情報: Windows 7 で Cygwin の mintty Unix bash の最新 (2015 年 2 月 11 日) の更新を使用しています。
Git を使用するように CVS リポジトリを変換する作業を行っており、tarball からファイルを復元する必要があります。ファイルを抽出した後、「cvs checkout」を使用してみましたが、いくつかのファイルが取得されましたが、ファイルの大部分は Attic ディレクトリにあり、チェックアウトされませんでした。このgnuフォーラムで提案されたように、屋根裏部屋にはありませんでした。これが機能しなかった後、解決しないcvs2svnを試しました。最後に、必要なファイルのほとんどを作成する通常の RCS co を使用してみました。
ただし、1 つの最上位ディレクトリにある Attic サブディレクトリから変換されたファイルはすべて空 (0kb) でした。.v ファイルを上位レベルに移動しても、正しく抽出されませんでした。
コード (rcs は次のように動作します)
ただし、次のコマンドでは rcs が正常に機能せず、サイズが 0kb のファイルが作成されます。
トップレベルへの移動が機能しませんでした
作業ディレクトリに移動しても機能しませんでした
この rcs co の振る舞いを説明できるものは何ですか? 他のファイルは、同様のサイズと拡張子です。この特定のディレクトリ内の Attic ファイルを別の方法で処理するためのリポジトリのドキュメントには何も見つからないようで、どの構成でも喫煙銃を見つけることができませんでした。何か案は?
rcs - RCS ログを差分で表示できますか?
悲しいことに、RCS
Unix.stackexchange または ServerFault にはタグがないため、StackOverflow に投稿しています。
SVN/Git にうんざりしていて、ファイルの履歴を確認する必要があります。私のスクリプトでは、RCS を使用してシステム構成ファイルに加えられた変更を追跡しているので、Git の場合と同じようにそれらを表示できれば素晴らしいと思います。gitの場合git log -p
、この種の出力を取得するために使用します。
rlog
または、差分のあるログを取得できるフラグはありrcsdiff
ますか?
またはrcsdiff
、シェル スクリプトを使用してこれを自分で実装する必要がありますか?
git - Git: RCS $Id$ 文字列に相当するものを取得できますか?
単一のファイルとして配布され、インストール手順を実行しないプログラムがあります。
git に RCS のような $Id$ 文字列を埋め込む方法はありますか? チェックインのタイムスタンプなども問題なく、フィールド内のファイルを簡単に識別できます。Github 固有のソリューションは許容されます。
git - 特定のサブディレクトリにのみバージョントラッカーを使用する方法は?
これには間違ったツールを見ているかもしれませんが、複数のサーバーで $HOME/module/submodule/{bin,config,log,tmp} のように構成されたシステムがあります。すべての構成ディレクトリにソース管理を追加したいと思いますが、他のディレクトリには追加しません (特にログ!)。git を $HOME に向けて .gitignore を使用して、興味のないものをすべて除外できると思いますが、新しいモジュールが時々追加される可能性があるため、すぐに除外したいものがたくさんあります。何か案は?明らかな何かが欠けていますか?ところで、私は git とは結婚していません。自分のニーズに合ったシステムなら何でも受け入れます。中央の変更リポジトリは便利ですが、必須ではありません。間違いをロールバックする方法と、変更追跡を追加する方法が欲しいだけです。
python - 「ci -u」を実行するための subprocess.call コマンド"
最初に新しいファイルを作成し(存在しない場合)、次にci(新しく作成されたファイルで)を実行して、最初のリビジョン番号でrcsファイルを作成するpythonスクリプトを実行しようとしています。しかし、スクリプトを実行すると、説明とピリオド「.」で終わるように求められます。この部分をデフォルトの記述で自動化し、ユーザーの入力なしで rcs ファイルを作成したいと考えています。どんな助けでも大歓迎です。以下は私のコードです:
これを試してみましたが、次のエラーが表示されます。
OS のインポート
サブプロセスのインポート
os.path.isfile(場所) の場合:
そうしないと:
トレースバック (最新の呼び出しが最後): ファイル "testshell.py"、15 行目、p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) ファイル "/usr/local/ pythonbrew/pythons/Python-2.7/lib/python2.7/subprocess.py"、672 行目、init errread、errwrite 内) ファイル "/usr/local/pythonbrew/pythons/Python-2.7/lib/python2.7/subprocess .py"、1201 行目、_execute_child で child_exception OSError を発生させます: [Errno 2] そのようなファイルまたはディレクトリはありません
version-control - CVS で RCSKEYWORD を変更する
CVS KEYWORD に問題があります。説明させてください: 私のソース ファイル (*.c) では、ヘッダーにキーワード "$Id" があり、これはチェックアウト後に文字列を返します:
read.adb、v 1.1.1.2 2005/02/20 17:57:20 dprice Exp
しかし、私のチームと別のチームは、同じプロジェクトに別のバージョンの CVS を使用しています。ソフトウェアのチェックアウトを行うと、$Id キーワード式は次を返します。
read.adb、v 1.1.1.2 2005-02-20 17:57:20 dprice Exp
文字列は、データ区切りの形式 (「/」から「-」) によって異なります。md5 を生成するとき、これは非常に大きな問題です。この MD5 はチームごとに異なります。
$Id の文字列を変更するにはどうすればよいですか?