ノンビリ暮らそう

電脳硬化症気味な日記です。まとまった情報は wiki にあります。

2014.7.12 (Saturday)

at 19:42  

Visual Studio 2013って、gitに標準対応しているのね   [わたくしごと]

 キッカケは些細なことだった。昔作ったASP.NETアプリをちょこっと改修したかっただけなんだ。

1) 作業用PCに、Visual Studio Express 2013 for Webのインストール
 ASP.NETアプリをコンパイルするとなると、Visual Studioが要る。
 Visual Studioは割と頻繁に代替わりするから、古いアプリの互換性維持が心配だった。なにしろ動作環境が、mono 2.8.2 on CentOS 6.5 なのだ。.NETの版を上げるのは怖い。VS2003辺りのプロジェクトを最新に変換してみたところ、.NET 2.0を対象としたままで実装できるようだ。
 ところで、gitに標準対応しているのに少し驚いた。「Azureでgit使え」ということらしい。これまでのVisual Studioでは、VSSなんて購入するわけもなく、AnkhSVNプラグインを導入してsubversionの1択だったが…。ならば、自宅サーバーにgitを導入して、コードを格納しようと考えた。これが面倒の始まりだった。

2) 自宅サーバに、gitを導入
 yumでgitをインストールしてみたが、接続方法、というか認証方法をどうしようか、と。「gitプロトコル」だと認証かけられない、「SSHトンネル」だと一般公開できない、ということで、「https接続として、Redmineと認証統合」することにした。
 先人のお言葉に従って、httpd.confを設定したところ、「RedmineGitSmartHttpなんてディレクティブは知らないよ」エラーとなった。Redmineでのsvn認証に使っていたRedmine.pmファイルが古かったようだ。Redmine-2.5内の同ファイルへのsymbric linkに差し替えた。
 また、「CentOS 6の標準搭載git 1.7.1は、httpでのBasic認証でユーザー名とパスワードを聞いてこない問題がある」とのことで、git 1.7.12をローカルインストールしようとしたところ、版競合が大量に発生して導入できない。インストールされているsubversion 1.8.8が原因な気がする。

3) subversionのダウングレード
 しょうがないので、インストールされていたsubversion 1.8.8を、CentOSのyumリポジトリにある1.6.11へダウングレードすることにした。yumで削除して入れ直す。
 すると、「既存のsvnリポジトリのfstypeがサポートされてないよ」エラーとなった。そりゃそうか…。バックアップdumpから、各svnリポジトリを再構築するハメになった。これが面倒だった。ふぅ…。
 おまけに、Redmine自体も1.8.8のsvnコマンドでcheck outしていたらしく、Rails再起動の度に、「svnクライアントを更新しないとダメよ」と言われるようになってしまった。こうなったら、Redmineも更新してしまえ!

4) Redmineのアップデート
 Redmine 2.5.2をcheck outし直して、差し替えた。何の障害もなく。

 ところが、svnリポジトリへ接続できないことに気がついた。2)の工程で、Redmine.pmファイルを差し替えた時に、自宅サーバー独自の設定「リポジトリ名は大文字と小文字を区別しない」「Redmineプロジェクトの公開/非公開に依らず、だれでもsvn読み取り可」等が消えてしまったようだ。Oh, no!

5) Redmineのプロジェクトidentifierに合うように、Subversionリポジトリ名を変更
 結局、これやんないといけないわけね…。なんとか、svnの復旧完了。

6) Visual Studioからgit remote repositoryへpushしてみる。
 おぉ!標準機能だけで、local repositoryだけじゃなくて、remoteへのpushまでできるのねぇ…。画面構成に慣れるまで多少混乱するが、通常用途にはCUIは不要。十分十分。 .gitIgnore や .gitAttribute が自動生成され、中身のお作法もなかなか良い。


« F1 British GP Clip to Evernote
Unicode 文字のマッピングが… »
  trackback:    



Go back.