Archive for the 'version control for ordinary users' Category

Tim O’Reilly: Why Congress Needs a Version Control System

Sunday, October 7th, 2007

Tim O’Reilly, together with Karl Fogel, discussed the idea of version control for U. S. Congress.

It turns out that Tasmania seems to have implemented something similar, as described in article by Timothy Arnold-Moore “XML for legislation drafting, management and Web delivery—How structured document representation facilitates automatic processing”, published in Novemeber 1998 (found via Bex Huff).

We have already covered similar topic back in March: Slashdot: Source Control for Bills in Congress.

Google Diff, Match, and Patch libraries for plain text

Wednesday, August 15th, 2007

Google Code hosts a library written by Neil Fraser, called google-diff-match-patch.

The Diff Match and Patch libraries offer robust algorithms to perform the operations required for synchronizing plain text.
  • Diff: Compare two blocks of plain text and efficiently return a list of differences.
  • Match: Given a search string, find its best fuzzy match in a block of plain text. Weighted for both accuracy and location.
  • Patch: Apply a list of patches onto plain text. Use best-effort to apply patch even when the underlying text doesn’t match.

Currently available in Java, JavaScript and Python. Regardless of language, each library features the same API and the same functionality.

Google Documents uses this library. Reasonable content management systems should use it, too.

More information and download at Google Code: diff-match-patch.

(via Global Moxie: “And speaking of version control…”)

ext3cow versioning file system released for Linux 2.6

Saturday, May 19th, 2007
Ext3cow is a versioning file system for Linux 2.6.x. “It provides a time-shifting interface that allows a real-time and continuous view of the past. This allows users to access their file system as it appeared at any point in time.” Main selling point for this seems to be the compatibility with various government data retention requirements, such as FISMA and Sarbanes-Oxley Act. Read more at The ext3cow File System homepage.

Slashdot: Source Control for Bills in Congress?

Wednesday, March 14th, 2007
Slashdot contributor Grepya points to an article in Slate: Specter Detector. U.S. attorney scandal update: Who’s to blame for those alarming Patriot Act revisions? According to it,
The background: When Congress reauthorized the Patriot Act last year, it included little-noticed language that changed the way U.S. attorneys would be appointed if their predecessors were removed in the middle of their term. Under the old regime, interim U.S. attorneys needed to be confirmed by the Senate after 120 days. If they weren’t, federal district judges could select their replacement. The new language removed both judicial and congressional oversight of the interim U.S. attorneys, letting DOJ anoint them indefinitely. This served three important goals: consolidating presidential power, diminishing oversight, and ensuring that “interim” prosecutors had permanent jobs. On Feb. 6, when the Senate held hearings on the issue of prosecutorial independence, former judiciary committee Chairman Sen. Arlen Specter, R-Pa., proudly claimed to have been as clueless as the rest of us. Denying New York Democratic Sen. Charles Schumer’s claim that he or his staff had “slipped the new provision into the Patriot Act in the dead of night,” Specter asserted, “The first I found out about the change in the Patriot Act occurred a few weeks ago when Sen. [Dianne] Feinstein approached me on the floor.”
Grepya wonders:
Now, I write software for a large and complex system containing millions of lines of code and I know that nobody could slip a single line of code into my project without my knowledge. This is because everything that goes into the build goes into a source control system, and email notification is generated to interested parties. This is for a body of work that affects perhaps a few hundred thousand people at most (our company and the combined population of all our customer organizations). Shouldn’t the same process be applied to bills being debated in national legislatures that affect potentially hundreds of millions of people?”
This is really quite interesting potential application of version control practices. Related observation: in Russian legislation system amendments to the laws are written in a very peculiar language. Wording differences, insertions and deletions are expressed in a minimal possible way, with a string rationing of words. This of course makes the amendments almost unreadable, looking like old-style diff output. Minimal context and almost no rationale is usually provided, except for very vague preliminaries. This brings to memory the worst cases of log messages made by developers lacking attention to documenting changes. There is of course a number of commenting publications which explain the rationale beyond changes and the meaning of new laws, but they are not available immediately, and it’s hard to audit the amendment just by looking. Also, sometimes the law is not available immediately in a new wording, and you have to take the old text and make sure that you understand how several subsequent amendments influenced it. See for example the “Federal law on amending the Federal law “On science”" (in Russian). (via slashdot)

Martin Fowler: PervasiveVersioning

Tuesday, October 24th, 2006
Martin Fowler writes about Apple Time Machine, which is an attempt to give something like version control to ordinary users. He advocates the idea that more and more applications for non-developers could incorporate some aspects of version control, especially for collaboration needs.
So my hope that is that Time Machine will spur development of applications that are aware of versioning and can take advantage of it, which will in turn shift to more effective collaboration.
Read more at Martin Fowler: “Pervasive Versioning” and “More Version Control”.

Joey Hess “Keeping Your Life in Subversion”

Tuesday, October 24th, 2006
Joey Hess, a famous Debian hacker, wrote long ago an article about how he was keeping his entire home directory under version control, using CVS. Now, as CVS gets replaced by Subversion, he switched to it, and new article was released. He gives advice on how to split private and public projects, how to keep configuration files under version control, how to use the same home directory on multiple machines. Of course, main advantages of described approach are distributed backups (including inherent mini-backups in form of file copies in the .svn directory); history of your work and configuration changes, including rollback and comparisons; and single synchronized workspace across every machine you’re using. Read more at OnLamp: Joey Hess “Keeping Your Life in Subversion” or at his blog: joey: “Subverting your homedir, or keeping your life in svn” (contains extra links and updates).