Configuration version control software

I know some people like to put their /etc under version control with CVS or hg or something, to make it easier to recover if they misconfigure something. I think this is kind of overkill, though. For one, you don't really need "distributed" or "centralized" version control, you just need to control the version. And for another, version-controlling the entire /etc doesn't really make sense considering that you're usually only working with a few files at a time, which you would generally control separately. So, I came up with the idea for a VCS specific to managing your system configuration. I'm going with the name Tessen for now since it sounds cool.
The two basic concepts involved here are applications and snapshots. An "application" refers to a particular set of config files managed by Tessen. For example, the pacman application would own pacman.conf, makepkg.conf, and pacman.d (a directory). Ownership in this context means that it will automatically track changes to the contents of the files and folders. (Each application has an active snapshot, which is basically "the last one you saved or reverted to.")
A "snapshot" is how an application's config files looked at any given time. A snapshot has a number (since it's not distributed, a simple autoincrementing integer will work), a timestamp (for obvious reasons), an action (to indicate exactly what caused this snapshot to be taken - for the user manually saving it would be "save", if it was installed by a package manager, "install", etc.), a note (if you feel like it - a good sysadmin would always have one), and the files' contents. (You can also add additional notes to snapshots after the fact, but this won't affect the note that was saved with the snapshot in the first place.)
Anyway, the workflow would run something like this:
"tessen newapp pacman pacman.conf makepkg.conf pacman.d". Tessen creates a new application named "pacman" that owns pacman.conf, makepkg.conf, and the directory pacman.d. (Tessen would automatically save a snapshot at this point consisting of the current contents of said files. That would be snapshot #1.)
Make changes to the configuration, like using aria2c as the transfer command.
"tessen save pacman -n 'set XferCmd to aria2c'". Tessen will take a snapshot of all the files owned by pacman and save that, making it #2.
DOOM! You forgot that you don't have aria2 actually installed, and now that XferCmd is aria2c you can't install it! (This is just a contrived example.)
"tessen revert pacman". Since you're at #2 but haven't made any changes, it will switch you back to #1. (If you had made changes, it would reset to #2 instead.) All necessary files will be reverted.
Now you can "pacman -S aria2" and make sure it works this time.
You could edit it manually to set it back to aria2 (which if you saved it would make it #3) but it's easier just to "tessen revert pacman 2". revert jumps back one step by default, but you can tell it to revert to anything. Then the next change you make would be #3.
One major thing about the design I haven't quite decided would be how ownership is stored, and what to do if you change the ownership and try to revert to an older snapshot. That would be tricky to figure out. Still, what do you think about this approach?

ewaller wrote:I think I'm missing something :-/
I know the OP dismissed git and hg at the outset -- but why?  It seems to me they are ideal for just this sort of thing.  On this machine, I do have an Hg archive living under /etc.  Being Hg, it is simple to push that off to other systems and keep them synced (or not).
Perhaps tessen could wrap git or Hg?
The reasons I had for not using a traditional DVCS (as much as I love them) include:
A VCS in all of /etc would manage your configuration as a whole. Tessen lets you manage each application separately without awkwardness.
Also, there is stuff in /etc that isn't really configuration (I'm looking at you, /etc/bash_completion!). You could get around this by simply not "hg add"ing those files, but it does make it trickier. (Though in an ideal world, each app would store its configuration in a separate directory and things like the completion scripts would be in /share or /usr/share.)
Finally, if you're using a DVCS so you can sync configuration, this would actually be better. For example, if you're trying to share the Apache and CouchDB configurations between your boxen, you have no way to keep out any other files you might have added (like, say, fstab).
Really, it's mostly just that the concepts behind Tessen map more clearly to the problem than those in hg or git. At least in my mind. Although using a DVCS as the storage backend would be interesting...
fukawi2 wrote:What language are you planning on writing this in?
Probably Python. (My original concept would use SQLite as the database.)

Similar Messages

  • Poll - Which Version Control Software Do You Use With LabVIEW?

    I wish the forums had a poll feature. I created a poll in the developer community - Which Version Control Software Do You Use With LabVIEW?
    http://decibel.ni.com/content/polls/1818
    Edit: I just saw that there already is a poll for that
    http://decibel.ni.com/content/polls/1050
    =====================
    LabVIEW 2012

    julieann wrote:
    You can use a source control provider to share files among multiple users, improve security and quality, and track changes to shared projects. Use LabVIEW with third-party source control providers so you can check out files and track changes from within LabVIEW. See info. here.
    Looks suspiciously like someone trying to increase hits on their blog. A coincidence that it was posted the same day as the blog post?
    Message has been reported to the moderator. Laura can decide whether or not it's appropriate.

  • Oracle Service Bus Configurations version control and deployment automation

    Hi,
    Currently we have OSB10gR3 installed and we use the web based sbconsole to create projects and proxy services. It's all working well and good!!
    We are at the state where we need to think about source control, migration of artifacts from dev to test and to prod.
    I'm looking for pointers to version control the artifacts of OSB projects, what could be version controlled (no binaries) and how do we extract those artifacts?
    How do we customize those artifacts while migrating to different environments in an automated fashion?
    Please point me to best practices and gotchas that we should be aware of while dealing with deploying OSB proejcts from test to Prod.
    Thanks in Advance!!

    After reading the threads mentioned by Deba, I'm able to get this all worked out with SBConsole itself. Experts, please review my approach below and let me know if I have overlooked anything.
    Simple advantage I see in using sbconsole is that it requires less maintenance, i.e. avoids rolling out another IDE (Eclipse -Workshop plug-in) to IT developers and at the same time provides the functionality that we are looking for. Currently, JDeveloper is our primary IDE, so we thought it's best to wait till OSB development gets integrated into JDev.
    This is the deployment workflow which worked for us,
    Developer:
    1)Develops Proxy services using SBconsole in Dev environment.
    2)Creates sbconfig.jar by using the export functionality available in System Administration link in sbconsole
    3)Checks-in ALL the files present in the above jar into version control under the proxy service project name
    4) Creates customization file using the customization file link in System Administration and modifies the value for each environment i.e. creates two files test_customfille, prod_customfile
    5)Checks-in the customization files into version control under the same proxy service project
    Promotion to Test and Prod
    1) From the source control, service proxy is built (actually the jar file of all files including the custom file is created)
    2) SCP proxy_sbconfig.jar file to Test or Prod box
    3) Follow the steps mentioned in Auto deploy of ALSB/OSB artifacts - Proxy, WSDL and webservices...
    4) Depending on the server, test or prod, pick the right customization file and deploy using ANT.
    Thanks!!

  • Hello, I want to use version controlling software with Labwindows.

    Hello All.
    I want to use version controlling tool with Labwindows/CVI. Actually version controlling tools work for text files and by using the tool i can do version controlling of my .c and .h files in Labwindows/CVI project. But is there a way to do version controlling of .uir files also. Version control tool can detect the changes made in .uir file but is there any tool that can be used to compare and merge .uir files too just like text files operation for version controlling.
    Regards

    Hello Moshi,
    Personally I never understood how the integrated version control system of
    CVI works, but SVN (and TortoiseSVN) works fine with CVI projects.
    UIR files are treated as binary, as they should be, and that's about all.
    You could put the .tui file under version control instead, but I don't think
    it's worth the bother.
    Guillaume Dargaud
    http://www.gdargaud.net/

  • Version Control Software Recommendations

    Can anyone recommend a reliable 3rd party Version Control System to look after our Forms, Packages, Procedures, SQL Scripts etc.
    Without bashing Oracle's SCM too much we are finding it a little restrictive and there is very little information on how to get the best out of it.
    Merging and Version comparison isn't a must (one of SCM's better qualities) but it should integrate with a 9i DB for storing of the objects as BLOB's etc.

    Hi,
    Take a look at the Quest product called STAT.

  • External Version Control usage with SAP

    Hi,
    I am trying to get info on configuring an external version control tool to use with SAP. I am aware of Version Management that is provided by SAP as part of Workbench Organizer and DTR for NetWeaver Developer Studio (for Java programs). However, my requirement is, to configure an external versioning system which can maintain the different versions of the source outside SAP system(not within the SAP repository). This is necessary to recover the system even in case of SAP system crashes also.
    Please let me know if we can integrate any Version Control Software like Perforce or CVS to use with SAP. I like to store ABAP programs, ABAP Data Dictionary objects etc. in it. Please point me to a useful document or resource which explains this in detail (if one is available).
    Any pointers are highly appreciated.
    Thanks,
    Krishna.

    Thanks for your feedback Nico and Carsten. The feedback on snapshots is very relevant and the sort of feedback that I was looking for.
    I will continue looking at external version control, but at the same time look at snapshots. For example, when doing a checkin operation to checkin to external version control, my script may be able to automatically create a signature snapshot of the object at the same time. Please let me know if, for some reason, that won't be feasible.
    Thanks,
    Gavin

  • Can we use RoboHelp with Eclipse as version control?

    Im am using RoboHelp 7 in the Tech Comm Suite in a Windows XP environment.
    I see a lot of information on using RoboSource as versionn control, but I'm not seeing a lot of information on other third-pary version control software.  I did see one posting that suggested that if you are planning to use third-party software, you should uninstall RoboSource first.  I can't seem to figure out the following:
    How do you determine if your version control (Eclipse) supports Microsoft SCC API?
    How do you get RH to recognize Eclipse? Even though I uninstalled RoboSource Control 3, it still shows up in the Select Version Control Provider
    Are there step-by-step instructions anywhere that show how to get RoboHelp to recognize third-party software?
    As always, thanks for your assistance.

    Colum,
    Thanks for recommending that I visit Peter's web site.  It has a great page on Eclipse.  Wish I had read it before I was shoved kicking and screaming into using it.  However, it did stop short of providing me with information to troubleshoot the problems I'm having with Eclipse and RH 7.  I sent him an e-mail from the site and hope that he will be able to answer it.

  • Portal and Versions Management Software!!

    Hello
    I have developed many thing using portal, like dinamyc pages, reports, forms, portlets, etc.
    I need to use a software to manage the versions of this components but I don't know how to integrate the things in portal with this software. I know that portal can control versions of this components but I have to do it with another software.
    Please help me
    Ana

    I'm sorry - I'm confused by the language in your most recent post, but I'll do my best.
    If you export an application, for example, you end up with a simple SQL script which creates (or replaces) a procedure. There's no reason why that type of script couldn't be modified, but we haven't had a need to do that.
    In other words, I typically work on the application until I like it on a prototype portal, then export scripts, commit to an external version control system, bundle, and deploy. As for truly "off line" component development, I suggest that the whole portal is really tailored to online work.
    Version control in this product probably means either being able to retrieve an earlier version of the component (in the component's online history), or improved versioning at deployment (via exports, version control software, and some type of organized deployment bundle).

  • OSB configuration versioning

    Hi all,
    could anybody tell me if there's any simple way(maybe it's predefined task in OSB or there's some workaround) to do OSB configuration versioning.
    I have complex task, the steps of which are (all done automatically) :
    1. sbconfig.jar is exported from Workshop;
    2. it is deployed on OSB;
    3. test are run to check if everything is OK - if sbconfig.jar is somehow crapped, OSB will be down...And I need to manually redeploy previous version of configuration. If I hadn't saved it previously (by manually exporting or...I don't know..), I am in trouble.
    So any ideas how I can make this versioning or how can I test sbconfig before deploying on OSB.
    As I see the solution now (though I don't like it):
    1. sbconfig.jar is exported from Workshop by script;
    2. current OSB config is exported and stored somewhere;
    3. latest sbconfig.jar is imported on OSB;
    4. running tests. If OK, leave as is otherwise deploy previous sbconfig back.
    Thanks in advance.
    Edited by: frf on 11/5/2010 0:25

    You may be interested in below thread for version controlling -
    Oracle Service Bus Configurations version control and deployment automation
    Regards,
    Anuj

  • Version Control for ORACLE DB Objects

    Hai Experts,
    We are using Oracle 10g and 11g as the our Backend and ASP.Net as Our Front end..
    We are using Visual Source Safe to cotrol the source for ASP.Net Codes..
    And We don't know about the Version control software/tools for the Database Objects..And Expect your help in this subject....
    Regards,
    jpy

    Hello,
    You might find neXtep Designer helpful, depending on what you need. It is a free database development environment based on the concept of version control. You will work in a dedicated version control repository in which you can import any existing database through reverse synchronization. Once imported, you will gain control over the lifecycle of your database model all along your developments. The tool will generate SQL scripts resulting from the delta between any 2 versions, allowing you to automate SQL generation. It also provide a delivery mechanism and an installer program which can automate deployment of the changes on a target database.
    The product is based on the Eclipse platform and provides features like graphical data model, dependency management, SQL clients, powerful SQL editors for stored code development and currently supports Oracle, MySql and PostgreSql. You will find more information here :
    http://www.nextep-softwares.com
    Also have a look at the WIKI for more detailed information about the product, the concepts and the reasons why we created neXtep.
    Hope this helps,
    Christophe

  • Preference for git over other distributed version control?

    Out of curiosity, and not to start a flamewar or anything...but, why does it seem like most Archers have an preference for git over other distributed version control software choices?  I tend to like Mercurial, as it was an easy transition from using SVN for so long, but reading the mailing lists, it looks like most of the Arch project development is moving toward git.  Is there something I don't know?

    elasticdog wrote:Would you say you like it more than Mercurial, or just now that you've been forced in to using it, it's not bad after the learning curve?  Which one do you use for personal projects?
    I do prefer git, after using mercurial for a quite a while.
    - Git is fast (very fast).
    - The format patch and other random porcelain are great.
    - The syntax and UI is a bit unruly, but once you get the hang of it, it's not a big deal.
    - Once very awesome thing for me is the ability to do localized in-repo branching, just checkout a local branch, and your tree changes to that branch. Do stuff, commit, whatever. Then checkout your other branch, and bam. You can diff and merge between local branches, create new ones, throw ones away, etc.. all within the same tree (no need for external clones).
    - The quick and easy rebase functionality is great too.
    I guess I would say git is powerful, but certainly arcane.
    I think mercurial got named branches a little while ago, so I haven't used them. I *think* they are similar to git branches, but I don't know for sure. The little I have read about them make them seem a bit funky.
    I prefer git, but mercurial is a fine choice too.
    I would say that pretty much everything out there besides these two sucks.
    ....and codemac is crazy by the way. map-my-scm-zealotry.

  • How to upgrade RoboHelp HTML 9 version-controlled projects to RoboHelp HTML 10

    Existing Environment:
    PC 1: RoboSource Control Server
    Windows 7, 64-bit, SP1
    Adobe TCS 3.5
    RoboHelp HTML 9
    RoboSource Control 3.1 (Server install)
    Microsoft SQL Server 2005
    PC 2:  Client
    Windows 7 Enterprise, 64-bit, SP1
    Adobe TCS 3.5
    RoboHelp HTML 9
    RoboSource Control 3.1 (Client install)
    PC 3:  Client
    Windows 7 Enterprise, 64-bit, SP1
    Adobe TCS 3.5
    RoboHelp HTML 9
    RoboSource Control 3.1 (Client install)
    PC 4:  Client
    Windows 7 Enterprise, 64-bit, SP1
    Adobe TCS 3.5
    RoboHelp HTML 9
    RoboSource Control 3.1 (Client install)
    PC 5:  Client
    Windows 7 Enterprise, 64-bit, SP1
    Adobe TCS 3.5
    RoboHelp HTML 9
    RoboSource Control 3.1 (Client install)
    We are upgrading from TCS 3.5 to TCS 4. In our existing TCS 3.5 environment, we have approximately 20 RoboHelp HTML 9 projects that are under version control. Our version control system is provided through RoboSource Control 3.1/Microsoft SQL Server 2005.
    I have determined that RoboSource Control 3.1 is provided with TCS 4. Therefore, it doesn't appear that we need to worry about upgrading the version control databases or the RoboSource Control software (we had to upgrade both the version control software and the version control databases when we upgraded from RoboHelp x5 to TCS 3.5).
    So, my primary question is this: After we run the TCS 4 install, what is the recommended process for opening our existing RoboHelp HTML 9 projects from the new RoboHelp HMTL 10? As I see it, there are three potential answers:
    Delete all existing RoboHelp HTML 9 "working" folders for the projects, and use RoboHelp HTML 10 to recreate the "working" folders from the version control databases.
    Simply open the existing RoboHelp HTML 9 "working" folders for the projects using RoboHelp HTML 10.
    It doesn't matter; either of the two options above will work.

    Hi,
    I'm not really familiar with RCS, but for other source control systems I recommend the following:
    1. Make sure that all your changes are checked in and that at least on pc has the latest version of all the files before updating TCS.
    2. Run the update.
    3. Now open the project on the pc that has the latest version of all files.
    4. After update, check in the entire project.
    5. Get the latest version on all pc's using the server. (Don't open the project in the client.)
         - Mostly, I just remove the entire project from the pc's and use a GET to get updated project from the server.
    I hope the RCS supports a get all from the server, if not, please ignore the above list.
    Greet,
    Willam

  • Local version control

    I use cvs to keep varios home stuff (not only software) organized. It works nicely, as all I have to do for backup is burn ~/cvs, I don't worry about being messy as long as I remember to commit, etc. However, cvs has some serious shortcomings, primarily:
    - messy way of changing directory structure in repositories
    - version control is done for each file, not for whole project
    - bunch of commands, flags, etc and no simple GUI
    I'm curious if anybody knows some good version control software which addresses these issues and is good for local stuff (e.g. subversion is an overkill) or what do other Arch users do to keep their disk organized?

    Heya,
    I haven't tried it myself, but maybe fuse can help or more specifically cvsfs.
    There are also other fuse-filesystems, but haven't seen any others that provide versioning-support as far as I know.
    greetings,
    Michel

  • Version Control/Configuration Management

    I am implementing version control at our site and would like to know the best approach to do this with Designer9i and whether I need another product like PVCS in conjunction with Designer? Also, can I access/control the versioned objects in the database?
    Thanks in advance

    Hi Irena,
    9i Designer includes the Designer repository, otherwise
    known as Oracle9i Software Configuration Manager (SCM).
    This will give you all the version control/configuration
    management functionality you require without any need to
    use PVCS.
    There are white papers and demos etc here on OTN to help
    you set up and understand how to use 9i SCM. Please see
    our Designer home page here on OTN for Designer specific
    stuff and also the 9i SCM Home page for SCM only stuff.
    Finally, there is also an SCM discussion forum too if you
    have any SCM specific queries.
    Hope this helps.
    Regards,
    Dominic

  • Oracle 11g grid control software for Oracle Enterprise Linux 5.0 version

    Hi,
    Just curious to know when Oracle 11g grid control software for Oracle Enterprise Linux 5.0 version will be released. If already released, can you post the link?
    Regards,
    Manohar

    aadragna wrote:
    What is the best installlation document to follow for the latest EM Grid control ?The latest Grid Control is available for download at http://download.oracle.com (Scroll down to "Enterprise Management"). There is a README beside the download link. THAT README PROVIDES INSTALL INSTRUCTIONS.
    In a nutshell, you install the lowest version (10.2.0.1 or 10.2.0.2, which ever is lower for your Grid Control platform), and then apply the 10.2.0.5 patch according to the readme. That should not normally take more than a day.
    >
    Also, can GRID discover PeopleSoft and Siebel application software ?
    That can be found using the self-help portal: http://otn.oracle.com -> Products : Enterprise Management (left edge menu). In the 'Product Focus' area, you will notice 'Application Management' which will lead you to the appropriate data sheets and supporting information.

Maybe you are looking for

  • How to set different navigation items for each content tab in xMII portal

    Hi, Scenario : I have added three content tabs in the xMII portal. I want to change the items in the navigation tree when each of the content tabs are selected. How is this possible? Please help.

  • Help needed with condition based joins in pl\sql

    Hi, I need to get data from 6 tables, Scenario 1 : I need to join 4 tables and join this result set to 5th table Scenario2: resultset of join of 4 tables to 6th table In this case how do i save the intermediate result set of 4 tables to use it in fur

  • Automatic production order creation and confirmation

    Dear all, I am in a situation where i have to configure the SAP system in the following ways: 1. From the planned orders automatically production order should be created today for the next day production and the end user will re-declare the quantity

  • I used to be able to open new tabs in a window, I am no longer able to do so. How can I fix this?

    This week Firefox would not allow me to open a blank tab when I click on the + tab at the top or when I press Ctrl T. I used to be able to open new blank tabs. This is frustrating. I have looked at the tools/options and help sections and cannot figur

  • MiFi 4510L Battery problem

    Ours MiFi 5410L has battery problems (draining when plugged in). I've called verizon, but they try to get my to buy yet another *** device. I have to use this one because it has a plug for an external antenna, which I have to have in order to even ge