初心者のためのSubversion(SVN)によるバージョン追跡
変更を追跡したり元に戻したりする機能を備えたプロジェクトで作業したいと思ったことはありますか? How-To Geekが、人気のあるバージョン追跡システムSubversion(a.k.a SVN)の使い方を説明します。.
Clearly Ambiguousによる画像
プリログ
このガイドはあなたに一般的にsubversionクライアントを使う能力を与えることを目指します、そして、あなたがそれを持っているなら、あなたの* DD-WRTルータで。このガイドは決してSubversionのための決定的なガイドではなく、多くの情報がSubversion Red Bookにあります。このガイドは、最も基本的な質問に対する簡単な回答を提供することを目的としています。.
概要
バージョン管理システムを使用するソフトウェアプロジェクトの最新のコードを「チェックアウト」できるようにしたいと思う理由は数多くあります。そうすることで、まだリリースされていない最新の変更から恩恵を受けることができ、テストや開発にさえ役立ちます。このガイドでは、いくつかの基本的なSVN用語について説明し、SVNクライアントをLinux、Windowsにインストールする方法を示し、OPKG対応のDD-WRTルーターがある場合はそれを示します。私達はまたあなたがチェックアウトして上記のルーターに使用できるプロジェクトの例を含んでいます.
Subversionとは何ですか?
Subversionが存在する唯一のバージョン管理システムではありませんし、Git(Linuxカーネルの創設者であるLinus Torvaldsによって作成された)、Mercurial、PerForceなどもあります。とは言っても、それは無料のものの一つです、それは成熟しており、世界中で広く使用されています.
Subversion“ Red Book”より:
Subversionはフリー/オープンソースです バージョン管理システム (VCS)つまり、Subversionはファイルとディレクトリ、およびそれらに加えられた変更を時間の経過とともに管理します。これにより、古いバージョンのデータを回復したり、データの変更履歴を調べることができます。この点で、多くの人がバージョン管理システムを一種の「タイムマシン」と考えています。
注:この本 です Subversionに関する究極の知識の集まりで、Subversion関連のすべてのトピックでそれを参照することをお勧めします。.
バージョン管理とは?
バージョン管理は、ある時点におけるプロジェクトの状態を保存するプロセスです。この種の手順は、ソフトウェア開発を管理するためによく使用されるので、プロジェクト全体の改善や機能の追加を続けながら、最後の「保存」時点からの変更点を追跡することができます。詳しく言うと、この種の手順は一人の人には有用ですが、同じプロジェクトに取り組んでいる人のグループにはなおさらです。これは、通常、プロジェクトをグループとして作業するときに責任が分散され、さまざまな人がプロジェクトのさまざまな側面を変更するためです。バージョニングメカニズムがないと、他の人からの最新の作業中の変更をすべての人が同期させることは非常に困難です。.
用語
リポジトリ
リポジトリは、さまざまな場所からのすべてのデータが保存されている場所です。 Subversionの世界では、クライアントの観点からは、プロジェクトのデータベースを保持しているのはサーバーです。このデータベースには、プロジェクトの一部であるすべてのファイルと過去のすべてのバージョンが含まれています。.
リビジョン
リポジトリが作成されると、リビジョン番号はゼロ(0)になります。この数は、コミットが実行されるたびに1つずつ増えます。リビジョン番号はリポジトリに対してグローバルです。つまり、その特定のコミットについてそのファイル内で何も変更されていなくても、リポジトリ内の個々のファイルには個々のリビジョン番号はありません。.
作業コピー
作業コピーは、特定のバージョンのローカルコピー(または「チェックアウト」)です。通常、このバージョンはチェックアウト時に「最新」のもの(「ヘッド」とも呼ばれます)ですが、以前のものをリクエストできます。ユーザーは、最悪の場合にもコードを再度チェックアウトすることしかできないという知識を持って、自分が望むものなら何でもローカルコピーで行うことができます。さらに、このコピーは「非公開」です。これは、あなたがあなたのコピーを更新またはコミットするまでは、他の人の変更を見ることはなく、またあなたのものを見ることもないからです。.
更新と競合の解決
ローカル作業コピーは更新することができます。つまり、特定のバージョンを「チェックアウト」し、作業中にリポジトリのバージョンが更新された場合は、作業コピーを最新のものに更新できます。実際、リポジトリに一致するように最新バージョンに更新する前に、サーバーは変更をコミットすることを妨げます。リポジトリに変更をコミットすることを考える前に、これはあなたに衝突をローカルに解決することを強制するために行われます.
マージ
マージとは、変更されたコードを1つのバージョンに統合するプロセスのことです。それはまた衝突を解決することを伴うかもしれません.
コミット
コミットとは、ローカルコピーに加えた変更がリポジトリにマージされるプロセスです。ここで行った変更は、同じリポジトリを使用している他の人々に影響を与える可能性があるため、これはプロセスの最も危険な部分です。そのため、チームの合意を得て、マージの競合を解決した後に、通常これを検討します。.
ワークフロー
subversionを使用する際のユーザーの観点から見た最も基本的なワークフローは次のとおりです。
1.既存のコード(通常は「頭」)をチェックアウトする.
2.変更を加え、ファイルを追加し、通常はコードを開発します。.
3.最新版にアップデートして、ローカルコピーがリポジトリのアップデートと同期していることを確認します。.
4.必要に応じてローカルでマージを行い、競合を解決します。.
5.マージした変更をリポジトリにコミットします.
6. GoToステップ2.
割れることができます
クライアントをインストールする
subversionを使えるようにするには、あなたのマシンにクライアントをインストールする必要があります。.
Linuxの場合
パッケージをインストールするだけです。 Ubuntu / Mintでは、これは次のようになります。
sudo aptitude install subversion
DD-WRTについて
「ホームルーターに追加のソフトウェアをインストールする方法(DD-WRT)」に従っていれば、次のコマンドを発行するだけでsvnクライアントをインストールできます。
opkgの更新opkg install subversion-client
Windowsの場合
私たちの深いオタクユーザーはGUIが時々存在することさえ忘れているかもしれませんが、誰もが持っているわけではありません。 SVNリポジトリへの接続にWindowsクライアントを使用したい場合は、これまでで最も人気のあるものは「Tortoise」です。それを使用するには、単にプログラムをダウンロードして、通常の「次、次、最後」の方法でインストールするだけです。.
「リポジトリ」を作成する
このガイドではSubversionサーバーのセットアップ方法については詳しく説明しませんが、初心者ユーザーにとってグーグルの代替案は悪いスタートではありません。 Googleリポジトリを作成するには
- Google CodeのホスティングWebサイトにアクセスして、新しいプロジェクトを「作成」します.
- 次のページで、必要なフィールドに入力して、「バージョン管理システム」のタイプをSubversionにします。.
注:プロジェクトにライセンスを選択する前に、Googleが提供するライセンスの違いについて一目で確認することをお勧めします。. - 「プロジェクトを作成」をクリック.
プロジェクトが作成されたら、「ソース」タブでそれにアクセスする方法についての指示を見つけることができるはずです.
Googleコードのいいところは、プロジェクトに対して匿名の読み取り専用バージョンが有効になるということです。あなたがあなた自身のプロジェクトを作成する煩わしさに対処したくないなら、あなたはこの作家のリポジトリを匿名でチェックアウトするかもしれません.
hotfortechプロジェクトに関する1つのメモ:このプロジェクトは、How-To Geek(私が個人的に使用している)のDD-WRTに追加された機能と、いくつかの個人的な調整のラッパーとなることを目的としています。このプロジェクトはhowtogeekに掲載されている記事と連携して機能するように設計されていますが、それでも私のプライベートプロジェクトです。つまり、それは私のバッファロールーター(AR71xxアーキテクチャ)、私の個人的な気まぐれに非常に適していて、時折ボルクージを起こしがちです。.
Linux / DD-WRTの場合
例えばDD-WRT上で作業するディレクトリを作成します。
mkdir -p / jffs / svn; cd / jffs / svn
Linuxのフルコマンドは、SVNコマンド自体、「checkout」ディレクティブ、リポジトリのアドレス、およびチェックアウトするディレクトリから構成されています。空のディレクトリを作成して以下のコマンドを実行します。
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
上記の例では、読み取り専用バージョンがチェックアウトされていることに注意してください。独自のリポジトリを作成することを選択した場合は、httpSリンクを使用する必要があります。.
Windowsの場合
亀はシェル拡張なので、使用するにはWindowsファイルエクスプローラのコンテキストメニュー(右クリック)を使用する必要があります。実際には、あなたがスタートメニューからそれを起動しようとすると、あなたは得るでしょう:
- 空のディレクトリを作成する.
- 右クリックしてコンテキストメニューを表示します.
- 「SVNチェックアウト」を選択してください:
- プロジェクトのリンク(ある場合)をコピーして「URL」テキストボックスに貼り付けます。
- プロジェクトのサイズによっては、これにはしばらく時間がかかりますが、「チェックアウト」が完了すると、次のようになります。
- あなたは開発を始めるかもしれません.
作業コピーの「更新」と「マージ」
同僚とコードを共同作業している場合、または自分自身が複数の場所(ラップトップ、デスクトップ、またはルーターなど)からコードを更新している場合は、最新の変更をコミットする前に作業コピーを更新する必要があります。.
Linux / DD-WRTの場合
これらのPOSIXシステムでこれを実行するためのコマンドは単純です。
SVNアップ
Windowsの場合
- 作業ディレクトリを右クリックして「SVN Update」を選択します。
- 競合が発生した場合は、画面上の指示に従って操作し、それらに対して何をすべきかについて判断してください。.
変更を「コミット」する
それはそれです、あなたは衝突がなく、あなたの変更でリポジトリを更新する準備ができているはずです.
ここで注意すべき点は、変更が行われた理由を簡単に思い出すことができるように、コミットに「ログ」メッセージを追加することが一般的なやり方であるということです。実際、Googleのリポジトリでは、これをコミットするための必須の前提条件としています。.
Linux / DD-WRTの場合
これは私がhotfortechプロジェクトをバージョン19にしたコミットの例です。
svn commit -m「新しいant-ads packリンクを反映するように更新」
Windowsの場合
- 作業ディレクトリを右クリックして「SVN Commit」を選択します。
- ログメッセージを書き留めることができるウィンドウが表示されます。
- [OK]をクリックしてパスワードの入力を求められたら、Googleが生成したパスワードを入力します。.
- コミットが成功した場合は、次のようになります。
- それはそれです、あなたはボスのようにコミットすることができるはずです.
最後に
これで十分です。 SVNのすべての用法、オプション、および注意事項をより深く理解するために、SVNの参考書を読むことをお勧めします。また、Subversionが唯一のバージョン管理システムではなく、GIT(Linuxカーネルの創設者であるLinus Torvaldsによって作成された)が近年人気が高まっているようです.
ルータ上のhotfortechプロジェクトから「running-config.sh」を実行することを選択した場合は、現在インストールされていることがわかります。anti-ads-pack、Opkg geek-initスクリプト、および完全なGNU“ ls”、“ less”、“ BASH”などのもの.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
より多くの機能が保留中であり、将来追加される予定です。.
システム管理者はコーディングを避けてコーディングする.