サイトデータの作業コピーでの作業(ターミナル編)
Mac OS X 10.5.8
Leopardで、Subversion(SVN)によるWebサイト(ホームページ)の管理システムを構築しました。何回かに分けて、紹介しています。
前回は、SVNリポジトリの中にサイトデータを作る所で終わっていました。
サイトデータの作業コピーでの作業についてまとめてみようと思います。SVN(Subversion)コマンドの説明になるのですが、「○○をする時の具体的作業方法」と言うまとめ方にしています。
色々なWebページを参考に、実際に確かめながら記事を書いています。ですが、間違いが入っているかもしれません。その場合はお知らせ下さい。
Webサイト用データの変更は、リポジトリのtrunkからの作業コピー(ワーキングコピー:WC)に対してする様にします。作業用コピーを作る事を、checkoutと言います。
作業コピーを、ホームディレクトリのSites.svnとします。ユーザー名を"user1"としていましたので、オプションとして付け加えます。
$ cd $ svn checkout http://localhost/svn/wwwlocal/trunk Sites.svn --username user1 Authentication realm: <http://localhost:80> Subversion repositories Password for 'user1': A Sites.svn/index.html A Sites.svn/styles.css Checked out revision 4.
これで、作業コピーが作られました。この後の編集作業は、Sites.svn内で行います
主な作業は、次のような物だと思います。
- 新規ファイルの追加
- 既存ファイルの編集
- 既存ファイルの削除
- フォルダの追加
以下、実際の例を使って説明します。基本的に、ファイル作業とsvn commit(リポジトリへの登録)の組み合わせです。
【新規ファイルの追加】
新規ファイルの追加は、JPEGなどの画像ファイルを追加する場合だと思います。ワーキングコピー(Sites.svn)の中に、画像ファイル(image1.jpg)を追加する場合を考えます。
- 作業コピーに、新しいファイルをコピー
- svn addで追加を登録
- svn commitで、新しいファイルをリポジトリに登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ cp ~/Pictures/image1.jpg . (Finderでコピーしても良い) $ svn add image1.jpg A (bin) image1.jpg $ svn commit -m "New Image" Adding (bin) image1.jpg Transmitting file data . Committed revision 5.
または、全く新しいファイルを作る事があるかもしれません。
- テキストエディットで新規ファイル作成
- 作業コピー内に保存(newpage1.html)
- svn addで追加を登録
- svn commitで、新しいファイルをリポジトリに登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ vi newpage1.html (テキストエディット.appやEmacsなど、他のエディタでも良い) $ svn add newpage1.html A newpage1.html $ svn commit -m "newpage1作成" Adding newpage1.html Transmitting file data . Committed revision 6.
作業コピー内に新しいファイルを作るのは、Finderを通しての作業で構いません。ただし、その後にsvn add/svn commitが必要になります。
【既存ファイルの編集】
既存ファイルの編集は、例えば、既にあるindex.htmlをnewpage2.htmlにコピーして、newpage2.htmlを編集するような場合だと思います。
- ファイルのコピー
- テキストエディット.appやEmacsなどでファイルを編集
- svn commitで、修正をリポジトリに登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ svn copy index.html newpage2.html A newpage2.html $ vi newpage2.html (テキストエディット.appやEmacsなど、他のエディタでも良い) $ svn commit -m "newpage2編集" Adding newpage2.html Transmitting file data . Committed revision 7.
ファイルのコピーに、svn copyを使いました。次の例のように、ファインダでindex.htmlをコピーして、newpage3.htmlに名前を変えて、svn addしても構いません。
$ cd $ cd Sites.svn $ cp index.html newpage3.html (ファインダでコピーして、名前を変えても良い) $ svn add newpage3.html (svn addが必要になる) A newpage3.html $ vi newpage3.html (テキストエディット.appやEmacsなど、他のエディタでも良い) $ svn commit -m "newpage3編集" Adding newpage3.html Transmitting file data . Committed revision 8.
svn copyを使わない場合は、svn addを忘れないで下さい。その後のsvn commitは、どの場合でも必要です。
【既存ファイルの削除】
svn commitでリポジトリに登録したあと、やっぱり不要だったと言う時があります。そういう時は、svn deleteで削除します。
- svn deleteで削除を登録(newpage3.htmlを消すとします)
- svn commitで、リポジトリに登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ svn delete newpage3.html D newpage3.html $ svn commit -m "不要につきnewpage3.html削除" Deleting newpage3.html Committed revision 9.
作業コピーにファイルをコピーしてきただけで、svn addとsvn commitする前でしたら、そのファイルをゴミ箱に捨てるだけで構いません。
もし、svn addしてしまった時は、一度svn commitしてから、上記の削除作業をして下さい。別の方法もありますが、この方法が安全だと思います。
$ cd $ cd Sites.svn $ cp newpage2.html newpage4.html (この段階だったら、ファイルをゴミ箱に捨てればOK) $ svn add newpage4.html (svn addしてしまったら、仮登録して削除するのが間違いない) A newpage4.html $ svn commit -m "newpage4.html仮登録" Adding newpage4.html Transmitting file data . Committed revision 10. $ svn delete newpage4.html D newpage4.html $ svn commit -m "不要につきnewpage4.html削除" Deleting newpage4.html Committed revision 11.
【フォルダの追加】
フォルダ(ディレクトリ)を追加するには、svn mkdirで作る方法と、ファインダなどでフォルダを作ってからsvn addする方法があります。
svn mkdirで作るには、次の手順です。subdir1と言うフォルダを追加してみます。
- svn mkdirでフォルダ作成
- svn commitでフォルダを登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ svn mkdir subdir1 A subdir1 $ svn commit -m "subdir1追加" Adding subdir1 Committed revision 12.
ファインダなどでフォルダを作ってからsvn addする方法を説明します。subdir2を追加するとします。
- ファインダなどでフォルダ作成
- svn addで追加予告
- svn commitでフォルダを登録
ターミナルでの作業は次のようになります。
$ cd $ cd Sites.svn $ mkdir subdir2 (ファインダでフォルダを作っても良い) $ svn add subdir2 A subdir2 $ svn commit -m "subdir2追加" Adding subdir2 Committed revision 13.
【紹介していないコマンド】
他に、svn update、svn status、svn logなどがあります。特に、複数人で作業する時は、svn updateは必須だと思います。
これらのコマンドは、次に紹介するWebページを参考にしてください。
【参考にしたWebページ】
SVNコマンドの使い方は、検索するといくらでも出てきます。「わかりやすいなぁ」と「良くまとめてあるなぁ」と思ったページを紹介しておきます。著者の方、ありがとうございます。
- Subversion メモ
- Subversion全体に渡ってまとめられています。
- Subversion [てきとうにめも]
- 言葉は少なめですけど、必要な事は書かれていると思います。
- コマンドライン Subversion の使用
- リファレンス用です。
【シリーズ記事】
ディスカッション
コメント一覧
まだ、コメントがありません