fsprojects / zarchive-sublime-fsharp-package

F# development tools for SublimeText 3
32 stars 7 forks source link

add git hooks to prevent commits mixing in subtree changes #57

Closed guillermooo closed 9 years ago

guillermooo commented 9 years ago

@rojepp

We have now a subtree in the repo. I'd like to have git hooks configured to minimize errors as much as possible.

Do you have any suggestions how to go about x-platform hooks?

guillermooo commented 9 years ago

I think Python will be the best option here. It's installed by default in OS X and Linux, and it's featured high up in MSDN's TOC, so we can assume MS is somewhat invested in it. Still, Windows devs would need to install it.

I don't think we can use .fsx scripts because we can't assume fsi is on the PATH. But we could make a note about that too.

rojepp commented 9 years ago

My immediate question is why is there a subtree here?

guillermooo commented 9 years ago

Because https://github.com/guillermooo/plugin_lib

Seems to be the most convenient (for some definition of 'convenient') way of keeping it updated and pushing changes upstream.

guillermooo commented 9 years ago

For completeness: I use it in other projects, not just here.

rojepp commented 9 years ago

I understand. I prefer simplicity, and a stand-alone repo. I wouldn't go down this route. What is the amount of shared code, and is it worth it?

rojepp commented 9 years ago

The mere fact that you're proposing to 'add git hooks to prevent commits mixing in subtree changes' signals unnecessary problems. How does this help?

guillermooo commented 9 years ago

My plan is to move as much as possible to the shared library.

We could fetch a release/commit with paket instead, so the burden would be in maintaining the shared lib. But that sounds like a pain.

The mere fact that you're proposing to 'add git hooks to prevent commits mixing in subtree changes' signals unnecessary problems. How does this help?

Git should abort if you've staged stuff in FSharp/sublime_plugin_lib and FSharp-specific code.

guillermooo commented 9 years ago

But I'm no git expert, maybe it isn't a problem any more. My understanding is that it causes problems.

rojepp commented 9 years ago

The code in sublime_lib doesn't seem complicated enough to deserve the inertia that comes with being an external lib. The code in there doesn't really do anything? I don't have a problem with sub-repos, but I'm nervous about elaborate schemes. Simplest possible please.

guillermooo commented 9 years ago

Not sure what you mean. It's certainly not too complicated, but it provides common functionality in plugins, so it avoids repetition. It's used in almost every python file in FSharp.

I don't have a problem with sub-repos, but I'm nervous about elaborate schemes. Simplest possible please.

The only concern is inadvertently committing FSharp plugin code together with changes to files under FSharp/sublime_plugin_lib. But I don't know if it's a matter of tidiness or if it causes actual problems (surely not for FSharp, just for the subtree). The hooks would be just a safeguard, but I think we should forget about them anyway because they don't seem to work on Windows.

My suggestion: forget about hooks; just keep the subtree and rethink what to do if we hit any problem. I don't think FSharp will ever be affected; I guess it's only FSharp/sublime_plugin_lib that could be negatively affected, if at all.

guillermooo commented 9 years ago

Instead of this, create a subtrees folder, add a README in there, and move the subtree there. At list it's more obvious that it's a git subtree.