バヌゞョン管理システムFossilパヌトI

ご挚拶、同僚



比范的最近、䜿甚されおいるバヌゞョン管理システムに関する調査が公開されたした。 予想通り、Gitは倧きなマヌゞンを獲埗し、Fossilはリストに含たれおいたせんでしたが、コメントでは数回しかフラッシュしたせんでした。 Habrでの怜玢では、化石に぀いおはほずんど䜕も曞かれおいなかったこずが瀺されたした。 したがっお、私はこの蚘事を公開するこずにしたした-特に、化石に関するロシア語の情報は非垞に乏しく単調であるためです。



オヌプン゜ヌス開発ぞの長幎の参加を通じお、CVS、Subversion、およびGitを䜿甚する機䌚がありたしたが、個人および仕事関連のプロゞェクトでは、ランダムリンク経由でFossilに䌚うたでバヌゞョン管理システムを䜿甚したせんでした。 ただダりンロヌドしお適切な堎所にコピヌする必芁があるずいう事実にすぐに倢䞭になりたす-唯䞀の実行可胜ファむル。 簡単な堎合は、詊しおみたせんか たた、リポゞトリ党䜓が1぀のファむルSQLiteデヌタベヌスであり、コピヌしお自宅に持ち垰ったり、職堎の別のコンピュヌタヌにむンストヌルしたりするこずもできたした。 私は䞀般的にミニマリストのアプロヌチが奜きです-たぶん3-4人のチヌムにSubversionのようなものを眮くために手が䞊がっおいなかったのかもしれたせん。



刀明したように、Fossilは完党に「倧人」のシステムであり、その有名な競合他瀟に比べお基本的な機胜の点で劣っおいたせん。 確かなボヌナスずしお、Webむンタヌフェむス、バグ远跡システム、Wikiがあり、゚ラヌ通知ずWikiペヌゞはプロゞェクトファむルもバヌゞョン管理システムなどの管理䞋にある同じリポゞトリにありたす。 e。 それらの倉曎も远跡されたす。 操䜜の過皋で、ドキュメントが研究されたずき、遞択の正確性に察する信頌を远加した、小さいながらも楜しい「グッズ」が明らかになりたした。 私はすぐに匷調したい私にずっおの正しさ。 誰もが異なる芁件、異なる習慣を持ち、他の誰かが他の䜕かに適しおいたす。 私にずっお、Fossilは控えめに蚀っおも完党に適切な゜リュヌションです。



化石のむンストヌル

そのため、 http//www.fossil-scm.org/download.htmlにアクセスしお、オペレヌティングシステムに察応するパッケヌゞをダりンロヌドしたす。 実行可胜ファむルを実行するのに䟿利な堎所、できればSET PATHでアクセスできるディレクトリにある実行可胜ファむルを解凍したす。 すべお、システムは䜜動する準備ができおいたす。



リポゞトリの䜜成ず蚭定

さらに、明確にするために、Windowsがあるずいう前提から進めたす。 たた、明確にするために、すべおのリポゞトリが個別のディレクトリc\ fossilに栌玍されるこずを前提ずしおいたすが、もちろん、個別のスペヌスを割り圓おるこずはできたせんが、制埡を䞎えるファむルのすぐ隣に配眮したす化石。 さらに、C\ projects \ castle \ source \に゜ヌスがあり、Fossilの制埡䞋に眮きたいCastleプロゞェクトがあるずしたす-それらを䜜業ファむルず呌び、゜ヌスディレクトリが䜜業ディレクトリになりたす。 最埌に、これらの゜ヌス甚に空のcastle.fossilリポゞトリを䜜成したす。



fossil new c:\fossil\castle.fossil
      
      





Fossilはcastle.fossilファむルを䜜成し、管理者の名前通垞、OSにログむンしおいるナヌザヌ名ずパスワヌドを教えおくれたす。 化石は䞀般に非垞に「おしゃべり」であり、圌のメッセヌゞを読む必芁がありたす;重芁な情報がそこに含たれおいる可胜性がありたす。 すでに理解しおいるように、これはすべおコン゜ヌルで行われるため、Fossilを䜿甚するには、コマンドラむンスキルを持ち、英語に粟通するこずをお勧めしたす。

次のステップは、c\ projects \ castleディレクトリに移動し、䜜成されたリポゞトリを開くこずです。



 c: cd \projects\castle fossil open c:\fossil\castle.fossil
      
      





ほずんどのFossil操䜜はオヌプンリポゞトリで実行されるため、䜜成埌すぐに実行する必芁がありたす。 しかし、それを閉じるこず 化石close はほずんど意味がありたせん-プロゞェクトの完了埌を陀いお。 fossil openコマンドは、珟圚のディレクトリにデヌタベヌスサヌビスファむルを䜜成したす。その名前は、FossilのバヌゞョンずOSに䟝存する堎合がありたす-Windowsでは_FOSSIL_です。 このファむルは、開いおいるリポゞトリに関する情報を保存し、ファむルの倉曎を远跡したす。 リポゞトリを開く前に、ワヌカヌの芪ディレクトリに移動したこずに泚意しおください。 これは重芁です。リポゞトリは、䜜業ディレクトリたたは芪のいずれかツリヌの任意のレベルで開いおいる必芁がありたす。開いおいない堎合、Fossilは䜜業ディレクトリからリポゞトリぞのファむルの远加を拒吊したす。

実際、 fossil openはサヌビスファむルを䜜成するだけでなく、䜜業ディレクトリずリポゞトリ内のファむル間の察応をチェックし、リポゞトリのファむルが芋぀からないか、䜜業ディレクトリず異なる堎合、䜜業ディレクトリのファむルをリポゞトリから䞊曞きしたす。 すべお/はい/いいえを譊告した埌。 しかし、これたでのリポゞトリは空なので、このようなこずは䜕も起こりたせん。



ファむルをリポゞトリに远加する前に、䜕かを事前に構成するこずをお勧めしたす。 これを行うには2぀の方法がありたす。

1 fossil settingsコマンドを䜿甚しおコン゜ヌルから



 fossil settings crnl-glob '*' fossil settings encoding-glob '*'
      
      





crnl-globを '*'anyに蚭定するず、行末の文字のチェック、 encoding-glob-ファむルの゚ンコヌディングのチェックが無効になりたす。 これが行われず、ファむルがWindowsの暙準CRNLシヌケンスたたはUTF-8以倖の゚ンコヌドを䜿甚する堎合、Fossilは譊告を発行し、 コミット操䜜䞭に確認を芁求したす。 さらに、䜜業ディレクトリに存圚する可胜性があるが、リポゞトリに含めるべきではないファむルマスクのリストを指定するこずをお勧めしたす。たずえば、オブゞェクトモゞュヌル、実行可胜ファむルなどです。



 fossil settings ignore-glob '*.o,*.obj,*.exe,*.bak,*.log'
      
      





fossil蚭定 コマンドに--globalオプションを远加できたす。この堎合、このパラメヌタヌはこのコンピュヌタヌ䞊のすべおのリポゞトリヌに察しおグロヌバルに蚭定されたす。 ずころで、蚭定倀が指定されおいない堎合、 fossil settingsコマンドは応答ずしおパラメヌタヌの珟圚の倀を返したす。パラメヌタヌ名を指定しない堎合、すべおのプリセットパラメヌタヌずその倀のリストを取埗したす。



2パラメヌタヌを蚭定する2番目の方法-グラフィカルむンタヌフェむスを䜿甚



 fossil ui
      
      





このコマンドの結果、Fossil Webサヌバヌ、この堎合はロヌカルサヌバヌデフォルトのポヌトは8080、別のオプション--portを指定できたすが起動され、ブラりザヌはURL 127.0.0.1:8080を䜿甚したす。 パラメヌタを蚭定するには、管理メニュヌ項目を開き、蚭定を倉曎しお、crnl-glob、encoding-glob、ignore-globを倉曎したす。 同時に、管理者/構成にアクセスできたす-プロゞェクトの名前ず管理者/ナヌザヌを蚭定したす-パスワヌドを倉曎したす。



最埌に、addコマンドでファむルを远加し、 commitコマンドでリポゞトリに送信したす。



 fossil add source fossil commit -m "Initial commit"
      
      





远加では、個々のファむルずディレクトリの䞡方を远加でき、ファむルマスクを䜿甚できたす。 チヌム

 fossil add .
      
      



珟圚のディレクトリずサブディレクトリからすべおのファむルを远加したす。



リポゞトリが開いおファむルが远加された、぀たりFossilの制埡䞋に眮かれたので、実際にプロゞェクトの䜜業を続けるこずができたす。 プログラム、蚘事、曞籍を䜜成し、重芁な倉曎をリポゞトリに送信するたびに、意味のあるコメントを付けおcommitを䜜成したす。



 fossil commit -m "Another brick in the wall"
      
      





ファむルを削陀/移動/远加するためのいく぀かのコマンドを次に瀺したす。



 fossil rm source\wall\brick.c
      
      



リポゞトリからbrick.cを削陀したす。 この堎合、このファむルの以前のバヌゞョンはすべおリポゞトリに残り、単に削陀枈みずしおマヌクされ、リポゞトリでのそれ以降の倉曎は修正されたせん。 このファむルは䜜業ディレクトリから削陀されたせん-必芁であれば、私たち自身でそれをしなければなりたせん。



 fossil mv source\bridge\item* source\wall\
      
      



アむテム*マスクを䜿甚しお、あるディレクトリから別のディレクトリにファむルを移動したす。 Fossilは䜜業ディレクトリ自䜓のファむルを移動しないこずに泚意しおください。これは手動で行う必芁がありたす。



 fossil addremove
      
      



リポゞトリにない䜜業ディレクトリのリポゞトリファむル぀たり、 fossil extrasコマンドが提䟛するリストにリポゞトリファむルを远加し、䜜業ディレクトリから以前に削陀したファむルをリポゞトリから削陀したす。



そしお、リポゞトリず個々のファむルに関する情報を提䟛するいく぀かのコマンド



 fossil ls source\wall
      
      



リポゞトリにあるsource \ wallディレクトリのファむルをリストしたす。 -vパラメヌタヌはファむルステヌタスEDITED、UNCHANGEDの列を远加し、 -ageパラメヌタヌは各ファむルの最終コミット時間を远加したす。



 fossil status
      
      



リポゞトリの珟圚の状態を確認したす。



 fossil changes
      
      



最埌のコミット以降に倉曎されたファむルをリストしたす。



 fossil extras
      
      



「远加」ファむルをリストしたす-䜜業ディレクトリには存圚するが、リポゞトリには含たれおいないファむル。



ファむルバヌゞョンを操䜜するためのコマンド-倉曎の衚瀺、元に戻す



 fossil timeline fossil timeline after 2014-09-01 fossil timeline before 2014-07-15
      
      



リポゞトリの倉曎履歎を衚瀺したす。- vパラメヌタヌは、各倉曎の圱響を受けるファむルのリストを出力に远加したす。 -tを䜿甚するず、出力する倉曎の皮類を指定できたす。ファむル内の-t ci 、むベント内の-te 、チケット内の-tt 、Wiki内の-tw 。



 fossil finfo source\wall\brick.c
      
      



デフォルトでは、brick.cファむルの倉曎履歎を衚瀺したす。 -sパラメヌタヌが指定されおいる堎合、ファむルに関する簡単な情報、 -pがファむルの内容を衚瀺する堎合、および-pに加えおバヌゞョンID -r VERSION も指定されおいる堎合は、指定されたバヌゞョンのファむルが衚瀺されたす。



ファむルバヌゞョン識別子は、詳现に説明する必芁がある重芁な抂念であり、ファむルの特定のリビゞョンたたはリポゞトリ党䜓で䜕かを行う必芁がある倚くのコマンドで䜿甚されたす。 バヌゞョンを識別するための次の方法がありたす。



Fossilリポゞトリの各芁玠ファむルバヌゞョン、チケット、Wikiペヌゞなどには、䞀意の識別子、SHA-1を䜿甚しお蚈算された40桁のハッシュがありたす。 コマンドに40文字すべおを入力するのはあたり䟿利ではないため、最初の数文字少なくずも4文字に制限できたす。 そのため、ファむルのバヌゞョンを識別する最初の方法は、ハッシュの初期フラグメントです。 別の方法は、YYYY-MM-DD、YYYY-MM-DD HHMM、YYYY-MM-DD HHMMSSのいずれかの圢匏で蚘録されたファむル䜜成日時です。 詳现はこちらをご芧ください。



 fossil diff source\wall\brick.c fossil diff --from VERSION1 --to VERSION2 source\wall\brick.c fossil diff --from previous --to current source\wall\brick.c
      
      



指定されたファむルの異なるバヌゞョン間の差diffをコン゜ヌルに衚瀺したす。 ここで、VERSION1ずVERSION2は、䞊蚘の説明に埓っお、 fossil finfoコマンドに察するバヌゞョン識別子です。 指定しない堎合、リポゞトリの最新バヌゞョンず䜜業ディレクトリ内のファむルの違いが衚瀺されたす。 Tcl / Tkがむンストヌルされおいる堎合通垞はLinuxシステムにもむンストヌルされたすが、Windows甚のポヌトもありたす、- tkオプションを䜿甚できたす-この堎合、Tcl / Tkに基づく組み蟌みのグラフィカルツヌルを䜿甚しお違いを瀺したす。 テキストファむルの違いをグラフィカルに衚瀺するためのGUIプログラムがある堎合Windowsではexamdiff.exeを䜿甚、Webむンタヌフェむスたたはfossil settings diff-commandコマンドを䜿甚しお、Fossil diff-commandパラメヌタヌの倀ずしお事前に蚭定できたす -その埌このプログラムはfossil diffが実行されるずきに呌び出されたす。



 fossil gdiff
      
      



fossil diffず同じですが、違いを衚瀺するためだけに、Fossil gdiff-commandパラメヌタヌの倀ずしお登録されおいるプログラムが䜿甚されたす。



 fossil tag add TAGNAME VERSION fossil tag cancel TAGNAME VERSION
      
      



指定されたバヌゞョンのリポゞトリのタグを远加  add たたは削陀 cancel したす。 このラベルは、バヌゞョン識別子の゚むリアスず芋なすこずができ、識別子の代わりに適切なコマンドで、できればtagプレフィックスずずもに䜿甚できたす。 通垞、ラベルはプロゞェクトの最も重芁な段階的なバヌゞョンに配眮されたす。



 fossil revert fossil revert source\wall\brick.c fossil revert -r VERSION source\wall\brick.c
      
      



指定されたバヌゞョンのファむルたたはファむル名が指定されおいない堎合はすべおのファむルを䜜業ディレクトリに戻したす。 バヌゞョン -r VERSION が指定されおいない堎合、最埌のバヌゞョン最埌のコミット䞭にリポゞトリヌに入ったバヌゞョン が取埗されたす。 バヌゞョン識別子は、䞊蚘の芏則に埓っお fossil finfoコマンドに察しお 指定されたす。



 fossil undo
      
      



revert 、 merge、たたはupdateコマンドによっお行われた䜜業ディレクトリの倉曎をキャンセルしたす最埌の2぀に぀いおは、埌の郚分で怜蚎したす。



さお、もちろん、助けおください-それなしでどのようにできたすか

 fossil help fossil help add
      
      



匕数なしのヘルプは、コマンドのリストを衚瀺し、コマンド名を匕数ずしおたずえば、䟋のようにadd 、このコマンドの説明を衚瀺したす。



私は別のチヌム、 化石すべおに぀いお話すしか助けられたせん。 開いおいるすべおのリポゞトリで指定されたアクションを実行したす。

 fossil all list fossil all changes fossil all extras fossil all pull fossil all push fossil all sync
      
      



list-リポゞトリのリスト、 倉曎 -すべおのリポゞトリで倉曎されたファむルのリストなどを衚瀺したす。



Webむンタヌフェむス、チケット、Wiki

リポゞトリの蚭定に぀いお話したずきに、 化石UIチヌムによっお起動されたFossil Webむンタヌフェヌスに぀いおはすでに蚀及したした。 次のようになりたす。









蚭定の衚瀺ず倉曎管理に加えお、ここではプロゞェクト履歎タむムラむン、ファむルのリストファむル、各ファむルを個別に衚瀺できたす。プロゞェクトブランチの構造ブランチ、タグタグ、バグ远跡システムチケットおよびWiki-ドキュメント。



履歎タむムラむンを芋るず、識別子角かっこで囲たれたハッシュコヌドをクリックしお任意のバヌゞョンを遞択でき、その時点でのファむルのリスト、倉曎されたファむルのリスト、各ファむルの以前のバヌゞョンずの違い[ diff]、このバヌゞョンのzipたたはtarアヌカむブをダりンロヌドし、履歎内のプレれンテヌションを線集できたす。 色合いなど



チケットずWikiの䜿甚に぀いお簡単に説明したいず思いたす。 チケット-この堎合、この単語はおそらく「カヌド」ずしお正しく翻蚳されたす-バグ远跡システム、バグ远跡を実装する方法ですが、これらのカヌドは䞀般的に蚀えば、゚ラヌメッセヌゞだけでなく、プロゞェクトの䜜業蚈画にも䜿甚できたす。 そこで、チケットを遞択し、次に-新しいチケットずカヌドに蚘入したす-簡単な抂芁、タむプ、この゚ントリが属するバヌゞョン番号、重倧床レベル、電子メヌル、およびwikiマヌクアップを䜿甚できる詳现な説明。これは、任意のオブゞェクトを参照できるこずを意味したす他のカヌド、Wikiペヌゞ、ファむルバヌゞョンなどの識別子によるリポゞトリ内。 ちなみに、リンクずしお識別子を䜿甚するこの可胜性は、リポゞトリ内の情報の䞀貫性を高め、プロゞェクトのすべおの郚分の最倧の統合に貢献するため、非垞に貎重に思えたす。 入力するず、チケットは[すべおのチケット]リストずタむムラむンの䞡方に衚瀺されたす。 開いお、远加のコメントを远加し、解決策を適甚できたす修正、拒吊、Unable_To_Reproduce、Works_As_Designedなど。 チケットが閉じおいる堎合、察応する修正をコミットするずき、このカヌドの識別子を角括匧で瀺すこずをお勧めしたす。察応する行のバヌゞョン履歎には、チケットぞのリンクがありたす。



Wikiの䜿甚を開始する前に、プロゞェクトの名前を指定するこずをお勧めしたすただ行っおいない堎合管理/構成-[プロゞェクト名]フィヌルドに入力し、[倉曎を適甚]ボタンをクリックしたす。 Wikiを遞択し、CastleプロゞェクトのホヌムペヌゞCastleプロゞェクトず呌びたすをクリックしお、このペヌゞを線集したす。 Formatting Rulesで䜿甚されおいるwikiマヌクアップのルヌルを確認したす。 [倉曎のプレビュヌ]を䜿甚しお、[これらの倉曎を適甚]をクリックしお保存したす。 すべおが正垞な堎合、䜜成されたテキストがメニュヌバヌの䞋のメむンペヌゞホヌムに衚瀺されたす。 Wikiペヌゞぞの倉曎はバヌゞョン管理システムによっおキャプチャされ、タむムラむンに衚瀺されるこずを思い出させおください。

通垞の名前付きFossilに加えお、時間関連のWikiペヌゞを䜜成できたす。これらのペヌゞはむベントず呌ばれ、タむムラむンに衚瀺されたす。 このようなむベントを䜜成するには、Wikiを遞択しおから、新しいむベントを䜜成したす。 むベントをアタッチする時間、タむムラむンコメントタむムラむンの行を入力し、色を遞択しおペヌゞコンテンツ実際にはペヌゞのコンテンツを線集したす。 Fossilドキュメントでは、むベントを次のように䜿甚するこずを掚奚しおいたす。





おわりに

そのため、レビュヌの最初の郚分では、1぀の職堎でのシングルナヌザヌモヌドでのFossilの䜿甚が怜蚎されたした。 リポゞトリの䜜成方法を孊び、
 fossil new c:\fossil\castle.fossil
      
      



開いおカスタマむズし、補充したす。
 c: cd \projects\castle fossil open c:\fossil\castle.fossil fossil settings crnl-glob '*' fossil settings encoding-glob '*' fossil settings ignore-glob '*.o,*.obj,*.exe,*.bak,*.log' fossil add source fossil commit -m "Initial commit"
      
      



プロゞェクトの䜜業でコン゜ヌルコマンドずFossil Webむンタヌフェむスを䜿甚したす。



次のパヌトでは、たずえば職堎や自宅で䜿甚するためにリポゞトリを別のワヌクステヌションに転送し、マルチナヌザヌモヌドで䜜業を孊習したす。



All Articles