RPGツクールMVをgit管理するときに勝手に書き換わる項目を抑え込むためのscript



簡単に書いた
https://github.com/nariya/rpgmaker-modifyremover

RPG Maker MV, もしくは RPGツクールMVというソフトが有る。
これはチーム開発前提でファイルが作られていなくて、いくつかのファイルがgitとかでめちゃ管理しづらい。
(多分次回版とかでは治るんじゃないかと信じたいのだが)



問題点がいくつかあって
1. mapInfos.jsonがいくつか勝手に書き換わる
2. System.jsonがいくつか勝手に書き換わる
3. そもそもjsonがformatterとかにかけられていないので、diffが実質取れない


jsonのformatterとかに関しては別記事がありそうなのでここでは書かない
 -> このへんとか https://qiita.com/stak/items/edb9431e925d1113c78a https://qiita.com/yukihane/items/45c0d6227173ef366b27 

ただ上記でも 1, 2, については問題が残る
versionIDとか、どうもセーブデータが変わるときにversion変えたりとかするものぽいのだけど今は特に必要ないし、手で書き換えられるようになっていれば十分。というかそうしないとconflictしまくる
あとはmapInfosの方。これも「現在のスクロール状態」とかの保持だから、gitignoreしようかと思ったぐらいなんだけど、ないとどうせ動かないのだろうからということでcommitはされている。
なので、これらのファイルをgit commit前に強制的に上書きしようという方針になる。


1, 2, に関してはmodify.jsというscriptを作って、そこで強制的に書き込むようにした
https://github.com/nariya/rpgmaker-modifyremover


3. に関してはjsonのformatをcommit時にかけるようにした
 -> https://qiita.com/yukihane/items/45c0d6227173ef366b27 


そしてそれをgit commit時に自動に行うようにして, sourcetreeからのcommit時とかでも動くようにしたので、「コミット時に勝手にformatが走ってちゃんとgitでdiffが取れる形式になった」という状況。
 -> git hoook pre-commit とかでググって下さい -> https://qiita.com/search?q=pre-commit

ソースツリーからのcommitでも以下のようなログになる。
問題ない


```
git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/cy/n269qh6s167d9092mwhn5_pw0000gn/T/SourceTreeTemp.JR3oSs -a 

> rpgmaker-theplace@1.0.0 modify /Users/nariya/prj/rpgmaker-theplace
> node ./modify.js


> rpgmaker-theplace@1.0.0 format /Users/nariya/prj/rpgmaker-theplace
> prettier --write **/*.js **/*.json

modify.js 37ms
ThePlace/js/libs/fpsmeter.js 129ms
ThePlace/js/libs/iphone-inline-video.browser.js 48ms
ThePlace/js/libs/lz-string.js 76ms
ThePlace/js/libs/pixi-picture.js 64ms
ThePlace/js/libs/pixi-tilemap.js 131ms
ThePlace/js/libs/pixi.js 1959ms
ThePlace/js/main.js 28ms
ThePlace/js/plugins/AltMenuScreen.js 6ms
ThePlace/js/plugins/AltSaveScreen.js 7ms
ThePlace/js/plugins/AudioSource.js 18ms
ThePlace/js/plugins/BB_DrawGauge.js 5ms
ThePlace/js/plugins/ChangeResolution.js 3ms
ThePlace/js/plugins/Chikuwa.js 10ms
ThePlace/js/plugins/Community_Basic.js 5ms
ThePlace/js/plugins/EnemyBook.js 12ms
ThePlace/js/plugins/FixStarPriority.js 4ms
ThePlace/js/plugins/ItemBook.js 18ms
ThePlace/js/plugins/KMS_AreaEvent.js 8ms
ThePlace/js/plugins/MadeWithMv.js 10ms
ThePlace/js/plugins/MKR_PlayerMoveForbid.js 10ms
ThePlace/js/plugins/MovieManager.js 21ms
ThePlace/js/plugins/PlayStepSE.js 20ms
ThePlace/js/plugins/ResidentWindow.js 31ms
ThePlace/js/plugins/SimpleMsgSideView.js 5ms
ThePlace/js/plugins/SNH_TurningDirection.js 8ms
ThePlace/js/plugins/StandPictureManager.js 11ms
ThePlace/js/plugins/TerraxLighting.js 170ms
ThePlace/js/plugins/TitleCommandPosition.js 33ms
ThePlace/js/plugins/TTKC_IgnoreMouseTouch.js 7ms
ThePlace/js/plugins/WeaponSkill.js 3ms
ThePlace/js/plugins/YEP_EventChasePlayer.js 16ms
ThePlace/js/plugins/YEP_StopMapMovement.js 5ms
ThePlace/js/rpg_core.js 320ms
ThePlace/js/rpg_managers.js 114ms
ThePlace/js/rpg_objects.js 460ms
ThePlace/js/rpg_scenes.js 107ms
ThePlace/js/rpg_sprites.js 124ms
ThePlace/js/rpg_windows.js 289ms
package-lock.json 16ms
package.json 2ms
ThePlace/data/Actors.json 9ms
ThePlace/data/Animations.json 1262ms
ThePlace/data/Armors.json 3ms
ThePlace/data/Classes.json 26ms
ThePlace/data/CommonEvents.json 10ms
ThePlace/data/define.json 1ms
ThePlace/data/Enemies.json 6ms
ThePlace/data/Items.json 5ms
ThePlace/data/Map001.json 22ms
ThePlace/data/Map002.json 19ms
ThePlace/data/Map003.json 23ms
ThePlace/data/Map004.json 23ms
ThePlace/data/Map005.json 36ms
ThePlace/data/Map006.json 137ms
ThePlace/data/Map007.json 23ms
ThePlace/data/Map008.json 40ms
ThePlace/data/Map009.json 25ms
ThePlace/data/Map010.json 27ms
ThePlace/data/Map011.json 168ms
ThePlace/data/Map012.json 11ms
ThePlace/data/Map013.json 22ms
ThePlace/data/Map014.json 23ms
ThePlace/data/Map015.json 14ms
ThePlace/data/Map016.json 127ms
ThePlace/data/Map017.json 11ms
ThePlace/data/MapInfos.json 5ms
ThePlace/data/Skills.json 8ms
ThePlace/data/States.json 8ms
ThePlace/data/System.json 11ms
ThePlace/data/Tilesets.json 143ms
ThePlace/data/Troops.json 4ms
ThePlace/data/Weapons.json 1ms
Completed successfully
```