Steve Maughan 26 Posted October 1, 2019 My application manages sales territory alignments e.g. zip code "32779" is assigned to territory "T164". Typically many people want to access and make changes to these assignments. For example, the manager on the west coast may want to dissolve a territory, and a manager on the east coast may want to expand a territory. It seems to me this is akin to version control. This being the case I've been thinking that Git could be used to manage the alignment version control. For this to happen I'd need my application to be able to access all the functionality of Git: commit, pull etc. Has anyone done this before? Are there any Delphi Git components or tutorials? Would I need to distribute a copy of git - I assume I will? Steve Share this post Link to post
Sherlock 663 Posted October 1, 2019 There is no official API AFAIK. But you may just as easily call the command line for git itself. Refer to the porcelain and plumbing of git for more information. And of course you would have to distribute a copy of git. Share this post Link to post
David Heffernan 2345 Posted October 1, 2019 Doesn't sound very much like dvcs is what you need. Sounds more like a central database is what you need. 2 Share this post Link to post
Steve Maughan 26 Posted October 1, 2019 12 minutes ago, David Heffernan said: Doesn't sound very much like dvcs is what you need. Sounds more like a central database is what you need. What's your thinking? Potentially a company will want distributed people working on their part of the alignment. They may experiment locally themselves with different alignments before committing to the main alignment. They'd also like to be able to rollback changes to see what the alignment looked like at a specific date. To me this seems akin to software development. What am I missing that a central database would provide? Thanks - Steve Share this post Link to post
David Heffernan 2345 Posted October 1, 2019 (edited) I would have imagined that you'd want some coordination, not everybody having their own copies, all different. Also, git in particular, and dvcs in general are very complex. You sure you want to throw that at your users. But hey, what do I know about your needs. Nothing. If you want to use git then go ahead. For instance with libgit2. Edited October 1, 2019 by David Heffernan 1 Share this post Link to post
dummzeuch 1505 Posted October 1, 2019 (edited) 22 minutes ago, Steve Maughan said: Potentially a company will want distributed people working on their part of the alignment. They may experiment locally themselves with different alignments before committing to the main alignment. They'd also like to be able to rollback changes to see what the alignment looked like at a specific date. To me this seems akin to software development. Given how many developers have got problems understanding how a distributed version control system works, I doubt that non technical people will understand it. And given how many times I personally had problems resolving git oddities (probably due to my own limited understanding of it), I doubt that you will do yourself a favor implementing this with git. This will most likely become a support nightmare, especially in my experience with the attitude of sales people towards IT and software developers. (They regard them lower than plumbers because in contrast to sales who earn the company lots of money IT only costs the company money and gets always into the way.) Edited October 1, 2019 by dummzeuch 1 1 Share this post Link to post
Steve Maughan 26 Posted October 1, 2019 David & Thomas - you may well be right; it may be too complex for clients. Thanks, Steve Share this post Link to post
Guest Posted October 1, 2019 2 hours ago, David Heffernan said: Doesn't sound very much like dvcs is what you need. Sounds more like a central database is what you need. I wanted to type; i would go with a good RDBMS and "SQL-logging". I.e you put up triggers to log changes in focused tables. So i agree with David. SVN/GIT does not feel like the way to go here. Share this post Link to post
Arnaud Bouchez 407 Posted October 2, 2019 It would make sense only if your data consist in text files, and you want to keep versioning of the information. A regular SQL database would replace the old data, so you would need to log the old values in a dedicated table. You can use the git command-line for all features you need. Just call it with the proper argument from your Delphi application. But I would rather take a look at https://www.fossil-scm.org/home/doc/trunk/www/index.wiki It is an efficient Distributed Version Control Management system, very similar to git, but with a big difference: "Self-Contained - Fossil is a single self-contained stand-alone executable. To install, simply download a precompiled binary for Linux, Mac, or Windows and put it on your $PATH. Easy-to-compile source code is also available" So you could be able to much easier integrate it to your own software. It has some other nice features - like an integrated Web Server - which could be easy for you. Here also, you would need to call the fossil command line from your Delphi application. 1 Share this post Link to post