About pburba

Paul is a committer on the Apache Software Foundation's Subversion project and has worked on Subversion for the past nine years. He works as a software engineer for Collabnet from his home in New Hampshire and when not coding he can usually be found skiing with his nephews, mountain biking with friends, or traveling with his wife. Some time in the distant past Paul graduated from the University of New Hampshire with a degree in Business. Somewhat more recently he obtained a masters in computer science from Boston University.

Repository Dictated Configuration — Part 3 of 3: Global Ignores

Global Ignores Welcome to the last topic in my three part series on repository dictated configuration (RDC).  In part 2 we talked about the new svn:auto-props property.  Today we’ll discuss the other new inherited property that involves RDC, svn:global-ignores. Ignoring Unversioned Items Before 1.8 Once again, this is just a quick refresher, if none of this sounds familiar, then give this section of the Version Control with Subversion book a quick read. Up until 1.7 there were two ways to prevent the svn add and import subcommands from adding certain items we didn’t want to place under version control (as …

Read More »

Repository Dictated Configuration — Part 2 of 3: Autoprops

Automatic Properties In part 1 I talked about the new inheritable properties feature in Subversion 1.8.  I promised that this feature would pave the way for repository dictated configuration (RDC).  Today I’ll show you the first part of 1.8’s RDC related features, the new svn:auto-props property. Wait…What is RDC Exactly? Subversion provides an extensive set of user configurable options which control various aspects of a Subversion client’s operations.  For repositories with only a small handful of committers in the same location, manually synchronizing these configurations is probably not too difficult.  For larger and/or distributed groups however, ensuring that everyone has …

Read More »

Repository Dictated Configuration — Part 1 of 3: Inheritable Properties

Bait-and-switch warning: Despite the title, I won’t talk about repository dictated configuration (RDC) today at any great length.  Rather, I’ll talk about the new inherited properties feature, which RDC is built upon, in the hope that it will provide a more complete understanding.  In part 2, I’ll move on to the details of RDC proper. Property Inheritance Even the most casual user of Subversion is likely familiar with versioned properties.  These name:value pairs of metadata are assigned to files or directories.  Some (those properties whose names begin with “svn:“) are attributed special meaning by, and trigger specific behaviors in, Subversion …

Read More »

Building Subversion on Windows: A Walk-through

There are many reasons you might want to build Subversion yourself rather than use a binary distribution such as CollabNet’s certified Subversion Command Line Client or CollabNet Subversion Edge (available here http://www.open.collab.net/products/subversion/getit.html). One common reason is the need for a debug build to track down potential problems. Another is the desire to submit a patch to the open source community to implement new functionality or perhaps fix that bug you just tracked down.

Where Did That Mergeinfo Come From?

One area of merge tracking that has caused confusion is how svn:mergeinfo properties are set.  In many common use cases only mergeinfo on the merge target is set.  There are however, many scenarios where mergeinfo under the target, so called "subtree mergeinfo", is created or updated.  These situations often leave users wondering if something went wrong during the merge and if they should commit these subtree mergeinfo changes.  That confusion is compounded by the fact that a given subtree may have no changes other than those made to the svn:mergeinfo property itself. This post describes some common cases where subtree mergeinfo is …

Read More »

Subversion 1.6.0 and Tree Conflicts

Most Subversion users are familiar with text conflicts. The classic case: You have a locally edited file in your working copy, an svn update brings a change to the same file from the repository, that incoming change cannot be merged cleanly into your local change, and the result is a text conflict. Subversion 1.6.0 expands this concept to cover conflicts at the directory level, e.g. you locally delete a file then an update tries to bring a text change down on that file. These new types of conflicts are called tree conflicts. Let’s look at a simple example of what you can …

Read More »

Subversion 1.5 Merge Tracking and Mergeinfo

Mergeinfo is simply the history of merges made into a path. But as with many things that can be described so simply, mergeinfo can become a bit more complex in practice. Read Paul’s Burba’s blog post and article and learn about the internals of Subversion’s merge tracking feature.

Subversion 1.5 Merge Tracking and Mergeinfo (Article)

  This article assumes basic familiarity with the topics covered in chapter 4 of the Subversion book and/or some experience with Subversion 1.5; either the early adopter 1.5 binaries available on open.collab.net or one of the 1.5.0 release candidates.  The examples in this article were done with release candidate 4.  As of May 6, 2008 the most current RC is Subversion 1.5.0 Release Candidate 5. Mergeinfo Mergeinfo, or more specifically the versioned property svn:mergeinfo, is the history of merges made into a given file or directory.  This article gives a detailed look at mergeinfo; what it means and how it works. …

Read More »