LoginSignup
1
0

More than 3 years have passed since last update.

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

Posted at

簡単に書いた
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

  1. に関しては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
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0