化石:既存のリポジトリにファイルを追加します。最初に開く必要がありますか?
-
21-12-2019 - |
質問
ディレクトリのバージョンを制御し、「プロジェクト」と呼び、「Fossils」という名前の別のディレクトリ内に化石ファイルを保持したいと思います。 「project.fsl」リポジトリを作成し、プロジェクトファイルを追加し、コミットし、閉鎖しました。私の問題は、次のステップに進む方法を理解することです。
これが私がやることです。 fossilbook
提案。
$ cd project
$ fossil new ../fossils/project.fsl
$ fossil open ../fossils/project.fsl
$ fossil add .
$ fossil ci -m "first commit"
$ fossil close project.fsl
今、私はプロジェクトに取り組み、いくつかのファイルを編集し、いくつかのファイルを削除し、いくつかのファイルを作成し、いくつかのファイルの名前を変更しました。プロジェクトの現在の状態をリポジトリに追加したいと思います。それ、どうやったら出来るの?
ドキュメントで読んだ内容に基づくと、最初にリポジトリを開いて、ファイルを追加してからコミットする必要があるという印象を受けました。リポジトリを開かないと、 Not within an open checkout.
メッセージ。でも、もし私が open
fossil は私のディレクトリを古いファイルで上書きしようとしています。(そして、中から開くと、 fossils
ディレクトリにコピーすると、プロジェクトの「解凍された」バージョンが fossils ディレクトリにコピーされますが、これも私が望むものではありません)
$ cd project
$ fossil open ../fossils/project.fsl
ここで、fossil は私のプロジェクトを古いバージョンで上書きしようとしています。私はどんな提案にもノーと言います。疑う open
は正しいアプローチではありませんでしたが、そうでない場合は何が正しいのでしょうか?
変更をリポジトリに追加したいので、project.fsl は open
, 、私はこれを試します:
$ fossil add .
ADDED Slides/tmp.tex
$ fossil commit -m "no idea what I'm doing, this will not end well"
would fork. "update" first or use --allow-fork.
$ fossil close
there are unsaved changes in the current checkout
この時点で、という名前の隠しファイルをすべて削除します。 .fslckout
.fossil
もう一度試してみますが、同様に残念な結果が得られます。
率直に言って、私の唯一の興味は fossil
私のプロジェクトの履歴を保存しています。共著者はいないし、共著者をする予定もない fossil diff
または fossil ui
あるいは、そのようなことは、自分のプロジェクトの歴史を掘り下げる必要があるときまでは、決して起こらないことを願っています。
編集。 私はまったくの初心者です。の意味がよくわかりません checkout
, manifest
, leaf
, 、など。そのため、数え切れないほどの時間を費やしても、マニュアルから何かを理解するのは非常に困難です。このページの内容がよくわかりません fossil open
: http://fossil-scm.org/fossil/help/open
解決
fossil open
は するべき正しいこと。あなたの場合、それは fossil close
それは必要ありませんでした。
この時点で、次のことを行う必要があります fossil open ../fossils/project.fsl --keep
すべての変更を保持したままリポジトリを開きます。
の 開ける コマンドは現在のディレクトリを 作業ディレクトリ (化石用語では、 チェックアウト)。リポジトリまたは作業ディレクトリ自体を移動する必要があるまでは閉じないことをお勧めします。個人的には、これは別のコンピューターに移動した場合にのみ発生します。
Fossil にすべての変更を識別させるには、次のようにします。 fossil addremove
;その後、fossil はすべての新しいファイルを追加し、すべての削除されたファイルを削除して、リポジトリが再び作業ディレクトリと一致するようにします。もちろん、その後でも変更をコミットする必要があります。
注記 それ addremove
する ない ファイル名の変更を自動的に認識します!ファイルの名前を変更した場合は、次のコマンドを使用してファイルごとにそのことを Fossil に知らせる必要があります。 fossil rename
指示、 前に あなたはそれを実行します addremove
指示。もちろん、特定のファイルの編集履歴を破っても構わない場合は、それをスキップして、fossil に 1 つのファイルが削除され、代わりに別のファイルが追加されたと認識させることもできます。
他のヒント
儀式は控えめで簡単に始められる
単一の開発者の場合、化石リポジトリのライフサイクルは非常に単純になります。
fossil new
リポジトリ ファイル自体を作成します。fossil open
最初の (または唯一の) アクティブなワークスペースを作成するにはfossil add
,fossil remove
,fossil rename
そしてfossil addremove
どのファイルを追跡するかについて Fossil に常に情報を提供します。fossil commit
リポジトリに変更をコミットするには
プロジェクトの存続期間中、必要に応じてステップ 3 と 4 が繰り返されます。
これは Fossil の最も強力な利点の 1 つです。それは設計上、非常に控えめな儀式です。非常に複雑なプロジェクトを単独で保守でき、実際に使用できるのは fossil commit
定期的に。
次のステップ
洗練の次の段階は、さまざまな方向に進む可能性があります。プロジェクトの作業を 2 人目の開発者と共有したい場合は、リポジトリのクローン作成と更新の同期について詳しく学ぶ必要があります。トランクのビルドを中断することなく、機能に対する独立した作業を可能にしたい場合は、分岐とマージについて詳しく学ぶことができます。Wiki とチケット トラッカーの機能を活用したい場合は、次のことを学習してください。 fossil ui
, fossil server
または、fossil を起動するように Web サーバーを設定します。
しかし、それらのユースケースはどれも 必要とする の使用 fossil close
指示。実際、出力は fossil help
最近、ほとんどのユーザーが必要とするコマンドの短いリストと、すべてのコマンドの長いリストに分割されました。その部門では fossil close
候補者リストには残らなかった。ファイルの単純な削除では簡単に実行できない唯一の機能は、変更が保存されていないことを確認し、ユーザーが使用できるチェックアウトの個人リストから開いているチェックアウトを削除することです。 fossil all
指示。
化石特有の語彙
たとえ 1 人の開発者であっても、fossil のドキュメントで使用されている語彙のいくつかを学習したいと思うでしょう。
- "チェックイン":ファイルの特定のリビジョンのセット。UUID によって識別され、場合によっては 1 つ以上のタグによって識別されます。
- "チェックアウト":関連付けられたフォルダー ツリー (によって
fossil open
) 特定のリポジトリを使用します。ほとんどの fossil コマンドでは、現在のディレクトリが開いているチェックアウト内にあることが必要です。 - 「UUID」:化石貯蔵庫に保管されている特定のものの一意の識別子。実際には、UUID は SHA-1 が持つ 16 進数で表現されたものです。ほとんどの場合、UUID は、一意に識別できる完全なハッシュの先頭の数字に短縮できます。通常、角括弧内に 8 桁または 10 桁で記述されます。
- "アーティファクト":リポジトリに保存されているファイルまたはその他のコンテンツ (Wiki ページ、チケット、マニフェストなど)。チェックインしたすべてのファイルはアーティファクトになります。各チェックインに関するすべてのメタデータ (コメント、タイムスタンプなど) も同様です。
- "支店":一部のルート チェックインから分岐する、連続するチェックインの行。ブランチは、マージの準備ができるまで変更を保留するため、または単に間違いのある変更を含めるために使用されます。
- "葉":ブランチの端でのチェックイン。
- "トランク":リポジトリ内の最初のブランチには「トランク」という名前が付けられます。他のほとんどのブランチは、トランクに沿ったいくつかのチェックインからのブランチになります。
- 「マニフェスト」:特定のチェックインで変更されたファイルのリストと、そのチェックインを説明するメタデータ (ユーザー、時刻、説明、親チェックインの UUID、および親チェックインに含まれるタグ) がマニフェストを構成します。ほとんどのユーザーはマニフェストについて心配する必要はありません。マニフェストは次の方法で作成されます。
fossil commit
Web インターフェイスから表示できます。
ウェブインターフェース
どのユーザーも、fossil への Web インターフェイスについて知りたいと思うでしょう。簡単な最初のステップは次のとおりです fossil ui
開いているチェックアウト内で。タイムラインには、各チェックインのノードと、分岐と結合を示すために描かれた線を含む開発履歴が表示されます。Web インターフェイスは高度に構成可能で、Wiki とチケット トラッカーを提供し、プロジェクトとリポジトリに関連するほとんどの設定を調整できる GUI も提供します。
Fossil 自体は、リポジトリのコンテンツ用の効率的な Web サーバーです。実際、次のページのほとんどは、 フォッシル公式サイト ソースコードのリポジトリから fossil への fossil 自体によって提供されます。
さらに詳しいヘルプのソース
以外にも、 Webサイト および個別のコマンドのヘルプは、 fossil help
, 、多くのユーザーが知っておくべきリソースが他にもいくつかあります。
そこには 化石ユーザーリスト 一貫して高い信号対雑音比を実現します。主要な開発者は、多くの親切で知識のあるユーザーと同様に、これに注意を払っています。リストには少なくとも 1 つあります アーカイブ, 、開発者が新しい機能や計画について話し合うための別のリストもありますが、fossil 自体の内部に取り組みたくない場合は、fossil-dev は面白くありません。
ジム・シンプフは、 本 これはチュートリアルと完全なリファレンスの両方を目的としており、ベスト プラクティスに関するいくつかのアドバイスが含まれています。一読の価値は十分にあります。
組み込みのコマンド ライン ヘルプと、Web インターフェイスで理解できるすべてのページ URL のドキュメントは、次の fossil の Web インターフェイスからも入手できます。 /help
リポジトリのサイト内の URL。このヘルプ テキストには、サポートされていない内部テスト コマンドを含むすべてのコマンドのドキュメントが含まれています。
最後に、StackOverflow の [化石タグ][タグ] はリソースとして無視できません。