git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

20
Git 運運運運運運運 運運 パパパパパパGit パパパパパパパ 2014.5.27 パパパパパパパパパパパパ パパパパ

Upload: mihararyosuke

Post on 15-Jan-2015

2.931 views

Category:

Software


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

表紙

パワーランチ:Git 運用ダメ出し会2014.5.27

株式会社ネクストスケープ三原亮介

Page 2: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

アジェンダ

Last Updated: Monday, April 10, 2023

www.nextscape.net 2

Git について軽く説明

(Subversion との違いなど )

Sitecore ウェブサイトでの運用事

Windows 上で Git を使う際の注

意点

Page 3: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Subversion との違い

Last Updated: Monday, April 10, 2023

www.nextscape.net 3

Subversion と Git で使う用語の意味は変わっていない。全体のコンセプトが違う。

作業コピー

Subversion Git

リポジトリ

コミットチェックアウト

作業ツリー

リポジトリ

コミットチェックアウト

リモートリポジトリ

クローン ( 複製 )

Page 4: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Sitecore データのバージョン管理

Last Updated: Monday, April 10, 2023

www.nextscape.net 4

Sitecore のウェブサイト運用でバージョン管理するデータとは?

.aspx .ascx

.cs

.item

シリアライズ.item

.item

詳しくは、 Sitecore MVP 赤澤さんのブログ記事で!ネスケラボ 『 Sitecore データのバージョン管理事始め』http://blog.nextscape.net/index.php/archives/2476

画像

CSS

テキスト

Page 5: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

使用ツール

Last Updated: Monday, April 10, 2023

www.nextscape.net 5

Git for Windows• Git BASH が便利。無いと困る。• TortoiseGit 、 SourceTree のコア

TortoiseGit• TortoiseSVN と同様のエクスプローラー組み込み型• Diff を見たりするのに便利

SourceTree• Git-flow をサポート

Backlog• リモートリポジトリのホスティング• ネットワーク図が見やすい

Page 6: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

既存 SVN リポジトリの移行

Ruby 製ツール svn2git(https://github.com/nirvdrum/svn2git) を使用。

trunk/branches/tags の構成を Git 流に変換できる。

インストール

実行tags の中身が大きく、全部移行しようとしたら長時間がかかる上に止まったりしたので、 trunk のみ移行することにした。

(SVN リポジトリを破棄するわけでもないので、 tags や branches 移行しないでも問題なかった ) 。

Last Updated: Monday, April 10, 2023

www.nextscape.net 6

ツールを使って SVN リポジトリを Git リポジトリに変換した。

$ gem install svn2git

$ svn2git https://subversion/repository --username mihara -v --trunk trunk --nobranches --notags

Page 7: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Sitecore ウェブサイトでの Git 運用事例

Last Updated: Monday, April 10, 2023

www.nextscape.net 7

得意先と Nextscape で 2 つのリポジトリを使用。

Sitecore本番環境

Sitecoreステージ環境

Git

Git

Nextscape BacklogGit リポジトリ

A 社 BacklogGit リポジトリ

A 社

Nextscape

NS では社内リポジトリで作業を行い、改修リリース時に得意先リポジトリへ反映 ( 手で ) 。

Page 8: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会 Last Updated: Monday, April 10, 2023

www.nextscape.net 8

ブランチ運用

得意先は master 一本。 Nextscape では Git-flow ワークフローを採用。

キャンペーンサイトなど大規模改修

Master

A 社リポジト

保守作業

本番環境

ステージ環境

Nextscape

リポジトリ

A 社Web 担当者

様レイアウト等

修正

NSJIN リポジトリ

変更の取得

NS保守改修リリー

スNS

大規模改修リリース

Page 9: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Git-flow 概要

Vincent Driessen 氏が提唱するブランチ運用のやりかた。

Git-flow のやりかたをやりやすくするツールがある (git-flow, SourceTree…)

本件では SourceTree を採用。

Last Updated: Monday, April 10, 2023

www.nextscape.net 9

社内では Git-flow ワークフローによって運用。

Page 10: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Git flow① 保守 =develop

master ブランチはすぐにリリースして OK な状態に保つ。

日々の保守作業は develop ブランチ上で行い、リリース OK 状態になったら master ブランチにマー

ジ。

Last Updated: Monday, April 10, 2023

www.nextscape.net 10

Page 11: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Git flow② 追加開発 =feature ブランチ

大きめの開発するときは、 develop ブランチから feature ブランチを切る。

開発が終わったら、 develop ブランチにマージする。

Last Updated: Monday, April 10, 2023

www.nextscape.net 11

Page 12: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Git flow③ バグ対応など =hotfix

Last Updated: Monday, April 10, 2023

www.nextscape.net 12

緊急なバグ対応とか。

得意先での変更内容も。

Page 13: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

得意先リポジトリとの連携

得意先でソースを編集されることがある。 .aspx や .ascx ファイルはビルドしないでもすぐ変更が反映される。

文言の修正とか、 JavaScript の追加とか。

変更したら、リポジトリへコミット / プッシュしてもらうようにお願いした。

ファイルのやり取りは手でやる。

Last Updated: Monday, April 10, 2023

www.nextscape.net 13

Master

A 社リポジトリ

本番環境

ステージ環境

Nextscapeリポジトリ

A 社Web 担当者様レイアウト等

修正

NSA 社リポジトリ変更の取得

NS保守改修の反映

Page 14: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

改行コードの変換

長いパスの問題

Last Updated: Monday, April 10, 2023

www.nextscape.net 14

Page 15: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

問題 CRLF->LF に変換する機能がある。

Sitecore のシリアライズしたデータの管理で困った。

対策 改行コード変換しないようにした。

Last Updated: Monday, April 10, 2023

www.nextscape.net 15

改行コードの問題

----item----version: 1id: {3D403A61-253D-41A0-9A12-A5A43899F20F}database: masterpath: /sitecore/content/Home-2013/salon_info2/kanto/tochigi/567parent: {21B7712E-E70E-43D3-B83D-5F2528F50907}name: 567master: {00000000-0000-0000-0000-000000000000}template: {D8C795E4-B73B-4A5F-A424-94DD5D70267B}templatekey: Salon

----field----field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}name: __Workflowkey: __workflowcontent-length: 38

{F16F7611-7B6C-47D3-B285-4626BFEAF7A6}----version----language: ja-JPversion: 1revision: 46f254ba-7088-49b2-8011-64c108d81c1b

----field----field: {F501BC74-9AF1-4044-B2BD-5A848124CB7B}name: Metadata_Titlekey: metadata_titlecontent-length: 33

サイトコア ( マーケティング CMS) | Sitecore 開発パートナー - 株式会社ネクストスケープ----field----field: {16534B48-FE26-4FC2-81CD-57C36DA3F0C0}name: Metadata_Descriptionkey: metadata_descriptioncontent-length: 129

Sitecore はその使いやすさ・機能性が認められ世界 50 か国、 32,000 サイト以上で愛されるWeb コンテンツ管理システムです。 Sitecore は留まることなく世界中のユーザーの声、最新のトレンドを吸収し今も成長を続けています。…

シリアライズ化データの一例

Page 16: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

Last Updated: Monday, April 10, 2023

www.nextscape.net 16

改行コードの問題の対処方法

リポジトリごとの設定

*.item -text

リポジトリのルートに .gitattributes ファイルを作り、下記を記載:

.item ファイルについては改行の変換を行わない

Page 17: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

Last Updated: Monday, April 10, 2023

www.nextscape.net 17

改行コードの問題の対処方法

環境ごとの設定

$ git config --global core.autocrlf false

全ファイル改行の変換を行わない

Page 18: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

問題 Windows が扱えるファイルパスは 260 文字までに制限されている。

Git リポジトリからファイルを取得時に、ファイルパスが長すぎてコケる事案が発生。

対策 Git for Windows 1.9.0 からは 260 文字の制限を超えたファイルパスを扱えるようになっている。

NTFS では 32,767 文字までのファイルパスを扱える。

エクスプローラーなどアプリケーションの実装上制限がかかっている。→制限をはずすことはできる。

ただし、明示的に設定しておかないと制限解除ができない。

Last Updated: Monday, April 10, 2023

www.nextscape.net 18

長いパスの問題

くわしくは・・・Win32: support long pathshttps://github.com/msysgit/git/commit/c5f98452e98dca292c615000df7973ead63cf29b(Git for Windows のコミットコメント )

Page 19: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

Windows 上の Git( トラブル )

環境ごとの設定

Last Updated: Monday, April 10, 2023

www.nextscape.net 19

長いパスの問題の対処方法

$ cd /path/to/repository/$ git config --add core.longpaths true

$ git config --global core.longpaths true

リポジトリごとの設定

Page 20: Git運用ダメ出し会 - ネクストスケープ 2014/05/27 パワーランチ資料

Git 運用ダメ出し会

まとめ

Git のコンセプトを理解する

運用ルール (Git-flow など ) を決めておく

Windows で使う場合はちゃんと設定する

Last Updated: Monday, April 10, 2023

www.nextscape.net 20

Git は怖くない