top | item 26228029

(no title)

rbsmith | 5 years ago

An example:

The 4th paragraph from the end of section II talks about optional deltas. It's like ifdefs in a version control system: many version can be checkout with or without some of the deltas. While not part of many version control systems, it's an interesting idea explored in Andreas Zeller's Feature Logic PhD work 20 years later [1].

[1 - currently, SSL cert expired this morning; notified] https://www.st.cs.uni-saarland.de/publications/files/zeller-...

discuss

order

JNRowe|5 years ago

Zeller's design seems to be addressed at least in part by darcs/pijul using the methods described in David Roundy's Theory of Patches¹. A virtual filesystem seems like an especially nice way to solve the interface issues that would arise too.

It strikes me that I treat the result of git-rerere as a ridiculously weak version of this. I'll occasionally carry an unwanted integration branch simply to handle changes that could be managed correctly if there was a better way to express relationships in my tools. Having the functionality baked in to the graph with the associated strictness, and available across clone boundaries would be great.

¹ https://www.cs.tufts.edu/~nr/cs257/archive/david-roundy/Theo...

pmeunier|5 years ago

> It strikes me that I treat the result of git-rerere as a ridiculously weak version of this

I'm the main author of Pijul, and rerere has been my main argument in every discussion about Pijul to explain how everybody is trying to simulate commutation instead of really achieving it.

This is the first time I hear it from somebody else. THANKS!

Also, Darcs' theory doesn't really work around conflicts. Also, until recently, applying a patch in Darcs could take a time exponential in the size of history. It seems to be quadratic in the last few versions (Pijul is in log of the size of history).