milkytracker / MilkyTracker

An FT2 compatible music tracker
http://milkytracker.github.io/
Other
1.69k stars 162 forks source link

Diff/Merge Tooling (and usability with git) #223

Closed SoniEx2 closed 3 years ago

SoniEx2 commented 3 years ago

Hi!

It'd be cool if MilkyTracker could operate as a (GUI) diff/merge tool for use with git.

Git has extensive support for external diff/merge tools. In fact, internally, git doesn't even know text files! Diffs aren't stored - they're generated on-the-fly when you run "git show" etc. Instead, git stores the whole files, before and after the changes. The same is true of merges, and 99% of the time automated merges are a mistake (e.g. someone changed pointers to references in a codebase and it broke some code that merged cleanly, but no longer compiled. that happens every now and then when using automated merges.), but anyway... you can make a merge tool that emits an "merge conflicts" version of the file, and then MilkyTracker would have to be able to edit said "merge conflicts" file so that the user can resolve the merge.

This would allow committing XMs into git, which would be super nice!

Thanks.

PS: Merge commits are commits. While some ppl say changing additional things in a merge commit makes an "evil merge", or making one-sided merges makes an "evil merge", or a number of other things... they're still commits, don't treat them as "less than" commits and you won't be bitten by those. But uh this is a mostly unrelated rant even tho it's somewhat related to the above... (after all, commits have their own whole files, never diffs.)

Deltafire commented 3 years ago

It would be cool, if someone wishes to work on this then go ahead.

I have decided that from now this issue tracker will be for the reporting of bugs only.

Pull requests with new features are still welcome.

Deltafire commented 3 years ago

Just stumbled upon a tool that can convert .mod files to plain text, and back again. Would enable you to diff and merge songs. Example.

https://github.com/martincameron/micromod