I'm trying to gather effective ways that others have solved the following problem.  At work we've been forced to release a software patch (to be installed on end-user systems) that we only want visible to a specific customer.  The custom code is in its own source-control branch.  The problem is we have two parallel code lines (and build scripts) to keep in sync, and every time we patch the original code we have to patch and test the customer-specific code.I'm curious, how do other organizations handle this scenario?  We're open to business solutions and not just technical (source-control related) ones.  For example, we've talked about telling the customer they can't receive updates on that branch.Our branching strategy is like this (based on the Visual Studio TFS Branching Guide, although we're using Subversion for it)
What is a realistic way to handle customer-specific software patches?
version control;business;release management
When you start giving out customer specific patches you have immediately created a new version of your product that must be maintained along side of it. That means changes have to be propagated between the two versions. Usually customer specific patches are customizations that should be owned by the customer, including the source code. It seems unlikely that a patch to fix something would not make it into the mainline branch unless this is a less than optimal temporary fix for an immediate problem. If that is the case then the patch will only need to be maintained until the expected fix makes it into the mainline.