Storing revisions in SQL Server (simply much like TFS)
Obviously when you check in a changeset, you know who the customer is (or was) according to what you describe about your process.  Even TFS requires something to be the same, so that it can maintain history.  

In any case, in multiple versions of the same object, what is constant?  

Is the "Name" constant? (Probably not.) If the Customers table were that simple I do not see what you are tracking other than a name change.  But likely the table is much more complex.

But as long as you know this is the same Customer, you should carry a constant value in the new Customer rows. Something like:

 Table: Customers
 Columns: Id | CustomerNumber| Name


That way "Id" is just a row surrogate key, but CustomerNumber would be assigned once and would be a datum included in the versions of the data you are tracking.

I suppose that the CustomerNumber could be the first Id assigned to this Customer, but I would suggest an independent numbering scheme, perhaps check-digited for a degree of protection from entry errors, should that ever be needed publicly.