
Hi Carl,
The solution, of course, is versioning, but I think 'add-source' doesn't help there anymore (right?), unless I copy the head to another directory and do the improvements there.
Assuming you have a git/svn/whatever repository for package X, then I would most likely create a version 0.1 branch of package X and let project A depend on version 0.1, and in the same way have a version 0.2 branch for project B. This way you can't use the wrong branch of package X without cabal yelling at you, that the desired version isn't available. Yes, you would have two checkouts of package X, each one switched two the desired version. Otherwise having your own Hackage server seems to be the only way to have an automatic version resolution. Greetings, Daniel