I’m wondering if it’s possible to have multiple people working in the same Grasshopper file? Either through a live-link, which would be preferable, or via sharing a main file that is then updated in intervals?
If it’s not something that have been done already my plan is to try to implement something that could work via C#, but experiences that some of you might have would be very appreciated. Even if the conclusion is that it’s not really possible.
apologies for the late response, I was out for a week attending the S2F conference in London.
There are no tools in GH1 for this, and actually no plans to make this easier in GH2 either. Instead of making it possible for people to work on the same file, we would rather make it easier to split large files into smaller chunks that still intercommunicate.
A very ‘alpha’ and somewhat naive feature in this area has been added to GH1 for Rhino6 recently as a proof-of-concept. In the Params.Util panel you’ll find two components called Data Input and Data Output which allow you to pump data from one file to another (or multiple others). This connection is reasonably live, but does require both files are run on computers that have access to the data location, it cannot be hosted on a server at this point in time.
There are other ideas with neater implementations scheduled for GH2, but for the time being this is your only out of the box option. Let us know if it in any way helps you out.
Related closely to the topic at hand here, I did have a conversation with Bob and Scott (but unfortunately not with you) about applying programming tools to help with multiple users modifying gh scripts.
Grasshopper is a programming language, so it would be good to be able to apply a version control tool such as GIT to the script (refer also to Share Definitions on Github)
Then if you sent a script to someone, and they revised and sent it back, would be much easier to detect what has changed. If two users are simultaneously working on a script, then merging changes would be great (resolving conflicts might have to revert back to nominating one change set as a priority). How you might review the differences would need some thought. Being potentially able to revert changes would also be powerful, or cherry picking changes on branches.
I know many large scripts out there might benefit from this. I’d be very interested to hear your thoughts.
Yeah that would be lovely, sadly it’s way more complicated to compare changes to GH files as opposed to just plain text (which is difficult enough if you want the comparisons to be meaningful). Some sort of tools here are certainly possible, but I doubt that any auto-comparer will be able to look at a file and understand it anywhere near as fully as a human being would.
One thing which was planned for GH1 but I gave up on in the end is the ability to include the undo-records in the file itself. This would provide a time-based way to inspect changes (and of course undo them at a later date).