I am interested in a system that allows for distributed development with an authentication piece. What do I mean by that?
Ok so lets take SVN, SVN keeps track of revisions and doesn't care who submits, as long as you have the right to submit you can submit, really, to any part in the repository. Where does my system come into play? Being able to granulate access control and give a stackoverflow like feel to the environment.
In the system I am describing we have 4 users Bob, Alice, Dan, Joe. Bob is a project managed, Alice and Dan are programmers under Bob and Joe is a random programmer on the internet who wants to help. Ideally in this system, Bob can commit any changes and won't require approval. Alice and Dan can commit to their branches, or a branch, but a commit to the trunk would need approval by Bob.
This is where Joe comes in, wants to help, however, you just don't want to give him the keys to the kingdom just yet so to speak, so in my system you would setup a "low user" account. Any commits that Joe makes would need to be approved by Dan, Alice or both. However, in the system, Joe can build up "Karma" where after so many approved commits it would only need approval by one of the programmers, and then eventually no approval would be necessary.
Does that make sense and do you know if a system like that exists? Or am I just crazy to even think such a system/environment would be possible?
Any decent distributed version control system, like Git or Mercurial, can do this. Those with permission to push can push, others have to send pull requests. The only feature missing is the automatic build up of what you call "Karma".
This is how most open source projects run.
Hm... Interesting wishes...
Let's see. You could do 3 branches:
Bob can commit in Final. Alice and Dan can commit in Development and Joe can commit in Unsafe.
The approval is actually the merging of the changes from a lower branch to a higher one. For example: Joe gets approved when his code is merged by Alice or Dan in the Development branch. Similarly, the approval for the Alice and Dan is the merging of their code, by Bob, in the Final branch.
For Karma is a little more complicated. You could write a script that will check from time to time the number of merges (approvals) for one user. When a certain threshold is exceeded, the user gets promoted (the script gives him access to higher branches).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With