symfonyをgitのsubmoduleとして使いたくて

symfonyをgitのsubmoduleとして使いたくていろいろ試行錯誤した。

==
2010-07-01 追記
symfonyの中でもsvn:externals しまくりなのかよ つまりこの方法だとダメくない?
tar gzipを展開してtagを打つか くだらねー
差分とかコミットログとか でっていう かんじになった
http://github.com/sanemat/symfony-copy

==

情報共有しておく。

下記に誰かがsymfony/branches/1.4を誰かがミラーしてくれている
http://github.com/vjousse/symfony-1.4

ただこれだとdeployのタイミングで万が一があればこけそうだし、tagで決め打ちたいなあということで 自分の目的に合わせてgithubにリポジトリを作ってみた

別の場所だと出来たのに家だとgit svn clone -s が最後fatalってこける

r29858 = 5b1b65b7dc41bf446d3f9ae0bdc8acb0d3edae5b (refs/remotes/2.0)
Auto packing the repository for optimum performance. You may also
run “git gc” manually. See “git help gc” for more information.
Counting objects: 5924, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5411/5411), done.
Writing objects: 100% (5924/5924), done.
Total 5924 (delta 2704), reused 0 (delta 0)
fatal: refs/remotes/trunk: not a valid SHA1
update-ref refs/heads/master refs/remotes/trunk: command returned error: 128

で、参照するだけでべつにdcommitしたり頻繁にpullしたりするわけでもないので、わりきってtagsだけもってくることにした。

$ git svn clone -r 27000:HEAD http://svn.symfony-project.com -t tags symfony

Checked out HEAD:
http://svn.symfony-project.com/tags/RELEASE_1_3_5 r29705

よくわからないけど最後にタグが振られたRELEASE_1_3_5がmasterになったらしい

$ git branch -r
tags/RELEASE_1_0_22
tags/RELEASE_1_0_22@27237
tags/RELEASE_1_2_11
tags/RELEASE_1_2_11@27993
tags/RELEASE_1_2_12
tags/RELEASE_1_2_12@28281
tags/RELEASE_1_3_2
tags/RELEASE_1_3_2@27971
tags/RELEASE_1_3_3
tags/RELEASE_1_3_3@28270
tags/RELEASE_1_3_4
tags/RELEASE_1_3_4@29009
tags/RELEASE_1_3_5
tags/RELEASE_1_3_5@29703
tags/RELEASE_1_4_2
tags/RELEASE_1_4_2@27965
tags/RELEASE_1_4_3
tags/RELEASE_1_4_3@28265
tags/RELEASE_1_4_4
tags/RELEASE_1_4_4@29002
tags/RELEASE_1_4_5
tags/RELEASE_1_4_5@29698

$ git checkout tags/RELEASE_1_4_5
Note: moving to ‘tags/RELEASE_1_4_5’ which isn’t a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
git checkout -b
HEAD is now at 9478607… [1.4] updated version number and externals

$ git branch
* (no branch)
master

おまえlocal branchじゃないよっていわれるけど気にせずtagをふる

$ git tag RELEASE_1_4_5

1_4_5と1_4_5@29698の違いがよくわからなかったのでこちらにもtagを振る

$ git checkout tags/RELEASE_1_4_5@29698
Previous HEAD position was 9478607… [1.4] updated version number and externals
HEAD is now at 263c67a… [1.4] updated changelog
$ git branch
* (no branch)
master
$ git tag RELEASE_1_4_5@29698

バージョンが1.4.5と1.4.5-DEVの差らしい よくわからない

$ git diff RELEASE_1_4_5..RELEASE_1_4_5@29698
diff –git a/lib/autoload/sfCoreAutoload.class.php b/lib/autoload/sfCoreAutoload index c019680..3892b06 100644
— a/lib/autoload/sfCoreAutoload.class.php
+++ b/lib/autoload/sfCoreAutoload.class.php
@@ -11,7 +11,7 @@
/**
* The current symfony version.
*/
-define(‘SYMFONY_VERSION’, ‘1.4.5’);
+define(‘SYMFONY_VERSION’, ‘1.4.5-DEV’);

/**
* sfCoreAutoload class.

で、まあ1.4.5をcheckoutしておいて
$ git checkout RELEASE_1_4_5
$ git remote add github git@github.com:sanemat/symfony-copy.git $ git push –tags github

masterがおかしいのでcloneしてきてもtagがうまく拾えない
git pullとかgit fetchとかのmanを読んでちょっと試したけどよくわからなかったので

$ git branch -D master
えーい
$ git checkout -b master
$ git push github master:master

とやっつけなかんじで終わらせた
結局、git側
http://github.com/sanemat/symfony-copy
master symfonyのsvn上でRELEASE_1_4_5のタグがついているもの
tags RELEASE_1_4_5 (1.4.5)
RELEASE_1_4_5@29698 (1.4.5-DEV)
となった

gitのsubmoduleでtagを指定してやりたいけど、init->updateだとmaster決め打ちになるのと
capistranoの:git_enable_submodules, 1 もmaster決め打ちになりそうなので、もうちょっと続きを探す

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中