#author("2016-03-22T22:03:50+09:00","","") #author("2017-06-13T00:11:29+09:00","","") * ソースコードリポジトリ内でデフォルトコンテンツが配布パッケージと同じ場所に配置されている [#h79acf14] - ページ: [[BugTrack2]] - 投稿者: [[umorigu]] - 優先順位: 低 - 状態: 提案 - 状態: 却下 - カテゴリー: その他 - 投稿日: 2016-01-18 (月) 03:10:19 - バージョン: 1.5.0 ** メッセージ [#v164cdd4] 現状、pukiwiki リポジトリ内では、デフォルトコンテンツが配布パッケージと同じ場所に配置されています。 例えば wiki/ 内のWiki本文を表すファイル群です。 このため、リポジトリをcloneした後に動作させると、PHPのソースを変更していないのにWikiテキストの変更が検出されてしまう。また、ソース変更部分とWiki変更部分が混ざって表示されてしまう。 開発時に地味に面倒なので、デフォルトコンテンツの場所を移動したい。 ** Solution [#y977c64c] [[qiita.com:usamik26/items/56d0d3ba7a1300625f92]] 既に git 管理しているファイルをあえて無視したい より引用: git でファイルを無視するには、通常は .gitignore や .git/info/exclude を使います。 しかし、既に git 管理下にあるファイルは、これらの設定があっても無視されません。 以下の方法を使えば、git 管理下にあるファイルをあえて無視することが可能です。 ... 方法(2) skip-worktree git update-index --skip-worktree [ファイル名] この設定を取り消すには次のようにします。 git update-index --no-skip-worktree [ファイル名] *** assume-unchanged と skip-worktree の違い この2つは、以下の点が違います。 - assume-unchanged : そのファイルが作業ツリー上で変更されているときでも、git はその変更を無視して変更されていないとみなします。 - skip-worktree : そのファイルが作業ツリー上で変更されているときには、git はその変更を保ちます。 これは、以下のような状況で動作の違いとしてあらわれます。 *** 作業ツリー上でもリポジトリ上でもファイル更新があって、それをマージするとき - assume-unchanged : 作業ツリー上の更新は破棄されて、リポジトリの内容が取り込まれます。 - skip-worktree : 作業ツリー上の更新は保持されて、リポジトリの内容は取り込まれません。 *** 作業ツリー上でファイル更新があって、git reset --hard を実行したとき - assume-unchanged : 作業ツリー上の更新は破棄されます。 - skip-worktree : 作業ツリー上の更新は保持されます。 skip-worktree が、この用途にちょうど使えます。 良いソリューションが見つかったので、ソースコード管理方法の変更はしないことにします。 -------- - .cvsignre (ひょっとして: .gitignore) -- [[henoheno]] &new{2016-01-20 (水) 00:27:05}; - 動かすならコレも関係してくる?[[BugTrack2/54]] 各国語のコンテンツ置き場について -- &new{2016-03-22 (火) 22:03:50}; #comment