2010年07月13日

「TortoiseSVNでコミットするとエラーになる」というので

「TortoiseSVNでコミットするとエラーになる」というので別ディレクトリにチェックアウトしてみたりしたけれど、やっぱりエラーになるので「subversion コミットできない」でぐぐったら、
http://unos.biz/blog/archives/138
http://blog.longkey1.net/archives/656
のようなお話が。

WindowsでTortoiseSVNで、sambaでの共有先が作業ディレクトリと。

smb.confにパーミッションの設定を追加するそうです。

[homes]
...
create mask = 0644
force create mode = 0600
security mask = 0555
force security mode = 0600



でも、何もしてないんだけどエラーがおきなくなっちゃった。
今度エラーが起きたら試してみよう。
posted by ほえ at 10:31| Comment(0) | TrackBack(0) | Subversion | このブログの読者になる | 更新情報をチェックする

2008年09月19日

svkを使ってみる件

subversionのリポジトリを1人で適当に使っている時はべつにどんな状態でcommitしようとも、誰にも迷惑はかからなかった。
自分だけソースのバックアップのつもりで使って、ラクチンだった。
他の人が使うようになって、気軽にcommitしていたら、こんなのcommitしないでよ!みたいな事に…。
あぁ、あの自由なcommitがもう一度したい。

と、思ったのでsvkを使ってみる事にしました。
subversionはTortoiseSVNというGUIのツールが便利でしたが、svkはコマンドラインです。亀さんが便利だったのでsvnのコマンドは知りません…。

さて、インストールも終わって

svk depotmap --init

も済みました。
??これから何をすればいいの?

深く考えずに進みましょう。
なにやらミラーをするらしいです。

svk mkdir //mirror
svk mirror [subversionのリポジトリのパス] //mirror/[svkのリポジトリ?]


subversionのリポジトリのパスから、ローカルのmirrorの下にsvk用のリポジトリ?にコピーしてくるという事かな?
//mirrorは別にmirrorじゃなくてもいいらしいですが、普通mirrorにするみたい。
サーバのデータベースをローカルのデータベースにコピーするようなものですが。で、ローカルのデータベースに出し入れして、タイミングを見てサーバ側に書き戻すと。ふんふん。
ファイルが一杯コピーされてくるかと思ったらここではまだです。入れ物だけ準備?

svk sync //mirror/[svkのリポジトリ?]

で、subversionのリポジトリと同期させるようです。亀さんの「SVN チェックアウト」や「SVN 更新」に似てるけど、これはsubversionとのやり取りになるのですね。svkとのやり取りもあるから、混乱する…。

次はローカルでブランチを作るそうです。

svk mkdir //local
svk copy //mirror/[svkのリポジトリ?] //local/[svkのリポジトリ?]

ブランチって何?というかブランチって使ってないっす。今のところ常に道は1つです…。それは置いておいて。
どうもsvk syncはsubversionのブランチもsvkのリポジトリに取り込んでくるようです。なるほど。

そして大事な事。svkはmirrorから常にブランチを作成して、そのブランチに対して作業を行います。
mirrorのリポジトリに対して出し入れを行って、コミットすると、subversionのリポジトリに対してコミットを行うそうです!!
これではやろうとしている事と全然違っちゃいますね!

必ずmirrorのブランチを作成して作業しましょう!


で、svk mkdir //localしたらいきなりメモ帳が開いてビックリしました。
=== Please enter your commit message above this line ===

とメモ帳に表示されているので、コメントを書いてメモ帳を保存して終了しました。
svk copyしても同様にメモ帳が開きます。同じくコメント書いて保存終了。

次はチェックアウトです。
だんだん慣れてきた。ローカルのブランチ(//local/[svkのリポジトリ?])から作業ディレクトリにチェックアウトします。

cd \dev\project_dir
svk checkout //local/[svkのリポジトリ?]

で、だーっっとファイルがチェックアウトされてきます。

そのチェックアウトされたファイル達をいろいろ編集して、コミットです。これはローカルのブランチに対しての作業ですね!

cd \dev\project_dir\[checkoutされたフォルダ]
…色々編集…
svk commit

またしてもメモ帳。今度は修正されたファイルの情報が表示されています。
先頭に色々コメントを書いて保存終了すると、コミットの完了です!


svk pull //local/[svkのリポジトリ?]

subversionのリポジトリから、svkのローカルブランチを更新する。


svk push //local/[svkのリポジトリ?]

svkのローカルブランチで、subversionのリポジトリを更新する。
試したらローカルブランチ->ローカルミラー->subversionのリポジトリまで更新された。

※チェックアウトするのに、亀さんが使えるようです。
file:///c:/Documents and Settings/私/.svk/local/local/project_x

なぜか.../local/local/...になるんです。

用語:
remote repository:subversionのリポジトリ
local repository:svkのリポジトリ
want to get some work done:何かしたい。<-最初何かした後かと思った…。doneは過去じゃないのね。受動態?のdoneなのね。
upstream repository:subversionのリポジトリ
remote branch:subversionのリポジトリにあるブランチ
local branch:svkのリポジトリにローカルで作るブランチ。
※subversionのリポジトリにあるブランチがsync等でローカルにコピーされたものではない。
posted by ほえ at 18:06| Comment(0) | TrackBack(0) | Subversion | このブログの読者になる | 更新情報をチェックする

2008年08月18日

リポジトリのバックアップは


D:\>svnadmin hotcopy D:/svn/repos/ ./backup --clean-logs

みたいに!
posted by ほえ at 12:36| Comment(0) | TrackBack(0) | Subversion | このブログの読者になる | 更新情報をチェックする

2007年10月22日

Subversionの使い方についてメモ

Subversionの使い方がよくわかっていないので、メモしておきます。

リポジトリ
データはリポジトリに保存されます。
プロジェクト毎にリポジトリを作ってもいいし、1つのリポジトリに複数のプロジェクトを入れてもいいです。
1つのリポジトリは1つのディレクトリのようなものです。
一般的なファイルサーバにある共有ディレクトリのようなものです。
違うのは、そこに保存されるファイルの内容の変更や、ディレクトリの構成等の変更を全て覚えているということです。

プロジェクト
リポジトリはディレクトリのようなものなので、その構成についてはユーザが自由に決めることができます。
1つのリポジトリに複数のプロジェクトを入れた場合でも、リポジトリはどのようなプロジェクトが保存されているのかは知らないのです。
このディレクトリはこのプロジェクト、こっちのディレクトリはこっちのプロジェクトというように決めるのはユーザです。
プロジェクトをディレクトリ毎に保存するのと一緒です。

リビジョン
Subversionのリビジョン番号はリポジトリ全体に対して付けられるもので、個々のファイルに付けられるものではないそうです。
なので、1つのリポジトリに複数のプロジェクトを入れた場合、あるプロジェクトのファイルを頻繁に更新したとするとリビジョンがあがっていくので、他のプロジェクトのファイルを更新した時にそのあがってしまったリビジョンがつけられるという事になります。
しかしながらこれは、プロジェクト内に複数のファイルがあれば、そのファイル固有のリビジョンというものはないので、他のファイルでリビジョンがあがれば、その次(?)のリビジョン番号がつけられるという事になり、どうでもいいのかもしれません。

trunk, tags, branches
Subversionで管理しているプロジェクトを見ると、良くtrunk, tags, branchesといった構成で管理されています。
これは一般的に慣習でこのような名前をつけているだけです。リポジトリはこれらの名前が何を表しているのかは知りません。

posted by ほえ at 15:56| Comment(0) | TrackBack(0) | Subversion | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。