Feature requests and suggestions
See original GitHub issueThis tool has great potential. Here are some features I could think of.
-
Resolving multiple files with the same extension(Not sure if it’s already supported) If a folder has
.js
and.jsx
and has been imported without extension, resolve order matters here. Make it configurable, optionally usebutler.config.js
? -
Watch mode?
- Need to rethink performance issues as we are reading and modifying most of the files on every run
- When to really move the file in watch mode?
-
Dry run Potentially there will be too many folders/files movement, this might not be what the user always wants by default. There should be a way to see what happens before it actually happens. I could think of two options(Note: we already have information about this in the graph).
- Print visual diff in the terminal before applying the changes(maybe too long for large projects)
- Move files and folders and prompt user do you want to keep the changes, If no, revert the changes
These features are already suggested, but, re-adding here with a bit more context.
-
Ignore directories/files/regex pattern Some tools like
next.js
andGatsby
depend on the folder structure. Allow skipping some of the folders and files(#11) -
Support running programmatically Allow running via node(or any other tool) for flexibility. also, we might need some sort of config file like
butler.config.js
(oh, no, another config file?)(#8)
We can also have a GitHub project board where we can track progress. I’m really excited about the future of this project 🎉
Issue Analytics
- State:
- Created 4 years ago
- Reactions:5
- Comments:8 (4 by maintainers)
We are using
git mv
, so I think that should prevent any merge conflicts related to the file being moved/renamed. Haven’t tested that yet though, so not 100% sure.@ganapativs Squashing is not relevant in your example. Squashing problems will occur when you branch from a commit that later in time gets squashes - for example a feature branch that is based on another feature branch. What your example is explaining is just a simple merge conflict due to two parts changing the same thing. This is nothing that we’ll be able to solve and will have to be handled manually.
What we do is make the merge conflicts easier by marking moved files as moved in Git.