For completeness, since the initial post of this thread, I've had some more time to think about this and have come up with a solution that worked for the particular pipeline I was developing recently.
- A GitHub repository containing the pipeline.
- A clone on the local network from which everyone is working.
- A clone per development machine for making changes.
The repository is then self-contained, where using an alternative clone in-place of the global pipeline is a matter of switching exposing your clone to
One of the struggles me and Roy were having initially was, how can we keep a global pipeline versioned, while at the same time work independently within our own clones? As written in the initial post, we tried making a server location into a "bare" repository, like GitHub was doing, in hope that this would somehow enable us to use the files while at the same time push to it.
In retrospect, we were overthinking it. What we should have done, and @BigRoy if you're listening and haven't changed how we did things then this may apply to you as well, was to have a regular clone exposed globally and
git pull into this whenever the GitHub/GitLab repository was updated.
In this way I also managed to make a "development" fork of the pipeline, for testing of new features and fixes before it got pulled into the main repository.
In this particular case, using the global versus development pipeline works like this.
$ mb # Enter global pipeline
$ mb-dev # Enter development pipeline
Where the fork is https://github.com/LegacyID1991/core and global is https://github.com/mindbender-studio/core.
For distributing this pipeline to another freelancer or studio, I chose to bundle dependencies into a separate repository called
setup. The difference here is that, like your project @tokejepsen, external Git repositories of particular versions are included in the project, and installing it is a matter of simply pulling this repo.
$ git clone --recursive https://github.com/mindbender-studio/setup mindbender-setup
$ cd mindbender-setup
The equivalent to your
environement.yml file is here, and install instructions and documentation is here.
The project is entirely standalone and should work on any machine with Windows and Maya 2016 if you want to test things out for yourself.