I consider myself to be a rather prolific open source software developer. I have over 50 original software projects in GitHub with probably close to 100,000 lines of actively maintained code. And that's just the software I've published.

With the sheer amount of code I've written comes some interesting complexities. For instance, I'll be humming along and find a bug in one of my libraries. I'll apply the fix to that library in the current application and usually remember to also apply the fix upstream. What takes forever to deploy is applying the fixed version of the library everywhere else that I use the library.

What I am looking for is a GUI tool that I can register, for example, a file named "http.php". It then tracks all instances of files with that name locally AND preferably also remotely (e.g. SFTP). When a file with the registered filename changes in any of the tracked locations or shows up in a formerly untracked location on designated paths to watch, the tool should visually display the changed file and offer to synchronize it to all or some of other designated locations. Upon completion of synchronization, I also want the tool to run git add/commit/push for git-enabled projects on a per-project basis either directly or by running an external script. I also don't always want to immediately add/commit/push either for some projects and I might want different commit messages depending on the project. I also have old projects with files of the same name that I no longer maintain that I never want to update so there should be some sort of exclusion mechanism on a per-instance basis. I should also be able to 'sleep' a changed file in some location for a period of time (e.g. a few days) in case I'm making significant changes to it so I don't get bothered by the tool.

That's just for tracking one file. The tool should support watching for as many files as I want to watch. Due to the complexities involved, only a GUI app can offer a suitable interface.

Symbolic links will NOT work as I need to be able to commit my code to GitHub but git generally excludes symlinked items. Hard links won't work as I want separate files anyway for various reasons. I want a general-purpose solution, not just for PHP (e.g. Composer doesn't work for me) as I also write C++ from time to time and encounter the same problem there with sufficient regularity. Standard 'sync' tools won't work either as they tend to be automated and my projects generally use a subset of each of my libraries. General-purpose sync tools also don't usually do granular file-level control without a ton of effort. This isn't a file deduplicator either as I actually want duplicate files but I want duplicate files at different times. I can certainly create this myself, but I'd like to see if there's an existing pre-built solution that will suffice before I sink several weeks into developing it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.