[MonoDevelop] Initial proposal for version control in MD

Rubens Ramos rubensr@users.sourceforge.net
Thu, 25 Nov 2004 00:23:01 +1030


--=-+gbJBZiwDLq4MQcEPUAa
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

For the ones brave enough to do a "make install"
with my code - I had to update the patch and my
files. Thanks to bitflux and chrish01 for helping
with this.

Rubens

On Wed, 2004-11-24 at 16:43, Rubens Ramos wrote:
> Hi All,
> 
>  I guess I am at a point now that I should send the
> code I have been working on for feedback. Please be
> gentle :)
> 
>  Background: This is the initial version of what would
> become generic support for version control in MD. In
> short:
> 
>  * VC is the core generic version control code in MD;
>  * Every specialised (cvs, svn) backend registers with 
>    VC and becomes available to a project.
>  * Depending on which VC you choose for a project, your
>    context menus, project options, etc. are different.
> 
>  The tar file contains a patch and the files I have 
> developed, so it should untar in the MD root directory.
> 
>  Warning: if you want *working* support for version control,
> this is NOT for you - this code is still incomplete. However,
> it contains a skeleton of a CVS backend, which:
> 
>  1) Shows how the VC backends and the VC core will communicate;
>  2) Shows how each VC backend options will be shown in the
>     project dialog;
>  3) Shows the context menu in the project browser pad and
>     how it will communicate with the backends.
> 
>  Note:
> 
>  *) The VC core code is implemented as an Addin, and is quite
>     independent (so far) from the Core code. I did this just
>     to simplify things for me - it could be easily moved into
>     the core code if desired.
> 
>  Things I am planning to start immediately:
> 
>  1) Make each VC backend conditional in the XML files
>     (by the way, thanks Todd for replying to my previous message)
>  2) Add support for saving/restoring the properties set in
>     the options dialog (I accept implementation suggestions on
>     this one :)
>  3) Add more and complete the existing CVS context menus and
>     hook them up to sharpcvslib to see if that works;
>  4) Implement some sort of icon/textual state indications in the
>     project browser tree view, so that the user will know if
>     files need to be updated, checked in, etc.
>  5) Adding a VC browser pad?
> 
>  So if you have comments, suggestions, feedback, etc. This is
> the time.
> 
> Thanks
> Rubens
> 

--=-+gbJBZiwDLq4MQcEPUAa
Content-Disposition: attachment; filename=version_control.tgz
Content-Type: application/x-compressed-tar; name=version_control.tgz
Content-Transfer-Encoding: base64

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
trORzaLtDnAe6/VCDxtLZEE3ur1rPyYE+oQjIyy/EBQvcjvM2A2GHjPQKSP7iYpYZJ9HK08IL2Kj
dk6YZpMuOz1h/PIYsahvyc2qvj9q7uwdnhw3kvtJljQ08uqJLY6aCxS87KvUOo4jrC5RLz+pSnhq
eFFVceeKkCWtWKVLOMVRrK1UzcRSBsdcheZBiB/KCmU0ag/cmzNv8cmLaYm9M2ueCSYshFswoVAb
qUWuRNpteT+CHQs8OTbvSGhyctsClgnKxNgoVNO7x2Xc40giSN8FuU8MqRsdjckybE+6RFOcjBkE
wbIGOIzr33RwbDysiJW9hjVXCXF60rOfVvuBZeU6hj27iqTIbtP/lkXX7wq4yAXD8VCO22jMh21z
Q477KvpdFCqM1F2TOZhfMO9UIS32cDxb+Z2uuBgXW+wvX5CDGKItTroBMwe0v7L5JB0f6hg18byB
nyc/qpH3ezaPuIec50cOuyk5tLubL/jt7+6mo2oLXXu+UNjepvOJNQoYyv5iRwQ1iM1S9OXf1ae1
L1+efHJka02eHK0Q9As6i9iQzXeRxRPqafIzVpuf7z2R3IrYOJyNU1w+xMZJug1Lqz6jtvTKSe6l
Ld6pbG9bRFy8ZisH7nfWzMbuOSplC/XWov8aqASctMNoO4LIpB6Dk8gm96EYuksifvMLwg9GIeUC
C4eb2Hx4k+dZiY0j8o4Zr+Kf8yefWMJQw3NDac1iQUhZEyqJohao9c+rCNZjYokIZ9HhKLnGbo7c
kjQwnzJyB+trfl5LKlad8+nFC8VGb8hnYGVmvPYl3VZq3JORjqGoIifYLnBKV1AS3a0mypvkUdNc
tOYnjwnns9ov/679ioO6Z89Ecau4Scn80CFsiiQoNs0Zt6psRkQRUYxOjXvQyk1v06RUGZ5YJjQe
T+RoIclLUipUBt2aUQ4ioO4lqXFRhDLxGJYSrpWWzsEmiKHK6CgbPpVuqhIxVJVhk5QqJkk6pwbX
859UvqaAnIvwgIFZDPkRZD0bMYlkssaic+F1Lqk7k1MORmjYkm5xshrRUmvB+jVtSwnbUTatwFyh
xhV3WkpJVf/HBSnd7SnBYKkUcTXspBUfJN0vLTAoB7LprrQqpVzJRq5Jd9CwtZ4B51vKnBQIdRH5
g6JUnJlYJDdRpLpNTyJrGRrU8OZHkzofS3107slXbEG5mmSulE8KYtIpys1KxBl9krWEzS9zxqkg
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
BAKBQCAQCAQCgUAgEP4xPgEEeVarAOABAN==

--=-+gbJBZiwDLq4MQcEPUAa--