- 追加された行はこの色です。
- 削除された行はこの色です。
#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