It looks like Git integrates directly into Visual Studio. I was playing with it on my work machine between meetings and it seems fine. (Hey, I'm "evaluating" it for future use at our company, right?) I may grab another client for things the basic interface can't handle, but I imagine most of what I'm going to want to do are covered. Unfortunately I can't evaluate the actual code here, as I don't have the patch dlls and IEMod doesn't compile anyway since it uses C# 6.0 and I'm stuck on Visual Studio 2013 until we finish upgrading our Team Foundation Server.
One of the major things I noticed is that the "UICustomization" mod is broken. There's a very large dependency chain on that as a lot of the generic stuff ("Helpers", "Quick Controls") shared between mods require classes from UICustomization. I'd suggest that be an early target for fixing since so much won't compile without it functional.
For the Console mod, the old CommandLine class was refactored into two classes. Both classes were also made abstract with private constructors, so I had to change the mod classes not to inherit from them, and to pass the type being modded to Patchwork as an argument to the attribute (but you already had support for that, so this was easy). I still have somewhere between 5-10 commands commented out because they depend on the broken UICustomization stuff. Do you want me to go ahead and send a pull request for the intermediate changes or wait until UICustomization is fixed so these commands can be reinstated?
Oh crap This is like literally a few days after I gave in and decided to use C# 6's awesome convenience features. Up till then I was doggedly sticking to C# 5 for compatibility
I think you should go ahead and send the pull request. It's progress. Refactoring is also good
What you say about UICustomization is a bit confusing. It depends on QuickControls etc, not the other way around. The only dependency that section has on the rest of the code, is when you set the Prefab objects are set (basically examples of Unity controls that we find from the game to clone and use for ourselves), and IIRC that's in the Options part. There is also dependency on StringTable. I also haven't found a using directive for that namespace anywhere in Helpers or Quick Controls.
Maybe those parts depend on game components that no longer exist, such as UIDropdownMenu?
It turned out I was mostly confused. I was excluding UICustomization and trying to resolve the resulting compile errors, and ended up commenting out/excluding more than I needed to. However, there are at least two mods that depend on UICustomization - the DropButtonMod and the Console. The former looks like a stray using (commenting it out lets it compile, and there are no problems when patching, but I haven't attempted to test it yet). The latter is only two commands.
However, saving the preferences in Options is definitely malfunctioning. It prompts me to save options and won't respond to either choice, and appears in lots of situations that don't appear correct - it will block you from saving your game, for instance. It somehow seems to work fine if you select the "Autosave on changes" checkbox. Since this is used to save changes to the settings the other mods used, it also looks like a good early fix candidate.
I've sent the pull request for the initial fix to Program. I had to restart from scratch (because of how I created the initial repo), and when I copied the changes back in it somehow decided I changed the entire file, so it looks a little weird. Hopefully the changes to the Console mod won't look so ugly and will be easier for you to parse.
Here's a list of definitely broken mods:
CombatLooting (signature change in source, compiles fine but fails patching)
FastSneak (sneaking-related)
NoEngagement (sneaking-related)
OnLevelLoad (looks like AI change, also depends on UICustomization)
SaveXML (change in PersistanceManager source)
SelectionCircles (source object was generally refactored)
Targeting (same)
UICustomization (party bar stuff, looks like the source UIPartyPortrait and UIMapTooltip were changed)
Of course, that doesn't mean everything else is working right, just that it doesn't immediately break. Will require some testing.