1 2 3 Previous Next 30 Replies Latest reply on Nov 3, 2015 9:27 AM by velistar

    There is a form of version control, similar to GIT for FileMaker?

      There is a form of version control, similar to GIT for FileMaker?

        • 1. Re: There is a form of version control, similar to GIT for FileMaker?
          coherentkris

          FileMaker server backups are the closest and most usefull aproximation.

          • 2. Re: There is a form of version control, similar to GIT for FileMaker?
            Mike Duncan

            You can use git with FileMaker files. Of course there's no diff or some other extended features you would get with text based source files, but there is nothing else that does that either for FM files.

             

            Mike

            • 3. Re: There is a form of version control, similar to GIT for FileMaker?
              Markus Schneider

              Not really. A version control, 'sccs' (source code control system) needs to have access to code, codefragments, files (with the code), etc.

              A sccs takes control over those files (that code) - one has to get them out of the system and back into the system (with some controling sequences, etc.), If somebody has a 'file' out for changes, no other can get that out. A changelog will be created, etc.

               

              That's not possible in this sense - But:

               

              What can be done: FMDiff (FMDiff.com) compares 2 version of a FileMaker solution and shows clearly what has been changed in between - fields, scripts, much more. You'll get a pretty good documentation! Fast! Depending on the way one is working (FMServer, access to scripts, etc.) some kind of control is possible (although not in a pure 'sccs' sense)

               

              In FileMaker, there are no text-files for scripts, no forms manager, no 'dump' et all (that's 'FileMaker' and I love that!) - therefore a classic 'sccs' won't fit..

              • 4. Re: There is a form of version control, similar to GIT for FileMaker?
                Markus Schneider

                Yes - that's true!

                Although not so handy when FMServer is in action (IMHO)

                • 5. Re: There is a form of version control, similar to GIT for FileMaker?
                  Mike_Mitchell

                  BaseElements (and presumably Inspector Pro) can provide a difference report of two DDRs.

                   

                  Not sure if that's exactly the same thing, but still quite useful.

                  • 6. Re: There is a form of version control, similar to GIT for FileMaker?
                    greglane

                    At Skeleton Key, we use Subversion repositories for all of our FileMaker projects. While Subversion doesn't help with visible diffs or merge capabilities for FileMaker files, it's still incredibly useful. We typically commit multiple times per day while developing, which allows us to easily retrieve any file from any point in the project's history.

                     

                    Subversion does use deltas for transferring and storing binary files. It's a very efficient way to store the files and it makes commits and updates for our remote developers extremely fast in most situations, even with files that are hundreds of megabytes.

                     

                    I highly recommend Subversion, especially for distributed teams. It offers a lot of advantages over all the alternatives that I know of.

                     

                    Greg

                    1 of 1 people found this helpful
                    • 7. Re: There is a form of version control, similar to GIT for FileMaker?
                      Markus Schneider

                      (-:

                      love subversion - one of the successors of the old (SUN) command line sccs

                       

                      ARe You working with FileMaker Server? How do You play with this combo?

                      • 8. Re: There is a form of version control, similar to GIT for FileMaker?
                        Markus Schneider

                        YEs - we are using analyzers as well (CrossCheck, Inspector Pro).

                        THe problem here is the time it takes for a run... Maybe I should check BaseElement

                        • 9. Re: There is a form of version control, similar to GIT for FileMaker?
                          vince.menanno

                          Markus,

                           

                          InspectorPro also compares pretty much all of it.

                          Only problem is that as you said it can take some time. We are looking to make improvements there.

                           

                          Nice thing in InspectorPro is that you can choose where you want to run your comparison. So if you know you only made script changes then you can run it on scripts. Unfortunately there are things in the DDR that I wish were better like unique ids for steps ... much like what we got for layout objects recently ( keys ). So that we could know for sure if the step existed before or if it is a new step. And likewise with custom menu items. Anyway the DDR is the last thing they get to as they have so many other priorities, but I do keep brining it to their attention. Hopefully in the next file format change they will tackle it.

                           

                          In the meantime InspectorPro can certainly help there. And again we are making some improvements.

                          • 10. Re: There is a form of version control, similar to GIT for FileMaker?

                            You could build a version table into the file and of course this would not include info on script changes, etc but would tell you when a developer opened the file.

                             

                            On first window open

                            if privilege set = full access

                                go to version control table

                                new record

                                  set fields to info you are interested in

                               commit record

                            end if

                            go to layout....

                             

                            This gives you a probable date of any modifications to the database and you could add a related table where the developer could list the changes made, perhaps saving a text field of the original script and one for the changed script. I usually duplciate my layouts before making any extensive changes and scripts can also be duplicated and stored in a "Duplicated" folder.

                            • 11. Re: There is a form of version control, similar to GIT for FileMaker?
                              MartinBoswell

                              I rolled my own DDR parser for this.  It turns all of the major FileMaker objects into text files, which I then commit to a version control system (git). 

                               

                              I find it very useful for looking at the differences between changes, for instance, for quickly diff'ing a script with an old version. I also find it useful for doing text searches throughout the project (e.g. global variables, field names, etc.).  And it saves me from having to manually document all of the minor changes that I make.

                               

                              Unfortunately, one thing that it can't help me with is restoring as I could with a text-based language.  That is, if I want to restore an old version of a script/function/menu set/etc., I can look at it while I re-code it, but I can't just perform a checkout and be done.  But I commit a clone of the FMP files (and the DDR), too, so with a little manual labor, I can dig out something like a long script.

                               

                              I gives me a file structure like this (from the FMServer_Sample file):

                               

                              ├── fmp_clone/

                              │   ├── FMServer_Sample.fmp12

                              ├── fmp_ddr/

                              │   ├── FMServer_Sample_fmp12.xml

                              │   └── Summary.xml

                              └── fmp_text/

                                  └── FMServer_Sample_fmp12.xml/

                                     ├── Accounts.txt

                                     ├── CustomFunctions/

                                     │   └── GetWorkDays (id 1).txt

                                     ├── ExtendedPrivileges.txt

                                     ├── PrivilegeSets.txt

                                     ├── Scripts/

                                     │   ├── - (id 11).txt

                                     │   ├── - (id 27).txt

                                     │   ├── New Task (id 25).txt

                                     │   ├── Re-Populate Localized Sample Data [First Startup] (id 98).txt

                                     │   ├── Script Triggers (id 28)/

                                     │   │   ├── Trigger | Create New Project (id 30).txt

                                     │   │   ├── Trigger | Create New Task (id 31).txt

                                     │   │   └── Trigger | Enter Projects List (id 75).txt

                                     │   ├── Server Side Scheduled Script Test (id 52)/

                                     │   │   └── Server Side Script | Export "Next Day" Tasks Due (id 54).txt

                                     │   ├── Show All Tasks (id 44).txt

                                     │   ├── Startup Script (id 26).txt

                                     │   ├── Upload to Server (id 145).txt

                                     │   ├── Web (id 134)/

                                     │   │   ├── Create New Project | Web (id 135).txt

                                     │   │   ├── Delete Project | Web (id 137).txt

                                     │   │   ├── Display Selected Project | Web (id 136).txt

                                     │   │   └── Script Triggers (id 138)/

                                     │   │       ├── Trigger | Enter Project | Web (id 140).txt

                                     │   │       ├── Trigger | Enter Projects List | Web (id 139).txt

                                     │   │       ├── Trigger | If Last Task is Deleted | Web (id 141).txt

                                     │   │       └── Trigger | QuickFind | Web (id 142).txt

                                     │   └── iOS (id 60)/

                                     │       ├── Create New Project | iOS (id 122).txt

                                     │       ├── Delete Project | iOS (id 69).txt

                                     │       ├── Display Selected Project | iOS (id 64).txt

                                     │       └── Script Triggers (id 65)/

                                     │          ├── Trigger | Enter Project | iOS (id 59).txt

                                     │          ├── Trigger | Enter Projects List | iOS (id 68).txt

                                     │          ├── Trigger | If Last Task is Deleted | iOS (id 67).txt

                                     │          └── Trigger | QuickFind | iOS (id 70).txt

                                     ├── Tables/

                                     │   ├── Personnel (id 131).txt

                                     │   ├── Projects (id 134).txt

                                     │   ├── Tasks (id 129).txt

                                     │   └── Translator (id 135).txt

                                     └── ValueLists/

                                         ├── Boolean (id 1).txt

                                         ├── Created By (id 8).txt

                                         ├── Percentage (id 4).txt

                                         ├── Personnel (id 2).txt

                                         ├── Priority (id 7).txt

                               

                              • 12. Re: There is a form of version control, similar to GIT for FileMaker?
                                mcrip

                                Is the parser something you're willing to share?  I think it would be very useful to have

                                • 13. Re: There is a form of version control, similar to GIT for FileMaker?
                                  MartinBoswell

                                  Sorry about that, but I seem to have cut off the end of my message when I posted last night. 

                                   

                                  I meant to also say that I'll clean this up and try to get it posted on github in the next few weeks in case others can find it useful. 

                                   

                                  It's currently a ruby script.  I'll turn it into a gem-based tool to make it easier to install and use.  That being said, it's still a command-line tool, but most people that are using git/svn/etc. won't find that too daunting.     Also, I only use it on Mac OS, and I suspect that there may be some issues trying to use it on Windows (aside from having to setup a ruby environment).

                                   

                                  I'll post back to this thread when I've got something up there. 

                                   

                                  - Martin

                                  • 14. Re: There is a form of version control, similar to GIT for FileMaker?
                                    MartinBoswell

                                    It took me bit longer than I'd hoped, but in case others might find this tool useful, I've posted it as a gem called 'fmpvc' on rubygems.org and put the source up on github:

                                     

                                     

                                    I hope that the README on the github page is sufficient explanation of how to use it. 

                                    Of course, feedback is always welcome.


                                    - Martin

                                    2 of 2 people found this helpful
                                    1 2 3 Previous Next