So my motivation is to move an entire code block from one file to another.
After reading up on it online I realized that versioning happens on file
So I can rename a file using *git mv *so that the git versioning system
realizes that only the *file-name/-location* has changed, but the contents
Wouldn't it be great if I could manually *label code blocks* inside a file
and move them from one file to another file, so that the versioning system
realizes that just the *code block location* has changed?
If I am not mistaken most files that are added to versioning systems
contain programming-language specific code.
That means the majority of versioned files could have *language-specific
comments *added in order to depict the *begin & end of such code block
In essence the versioning system would not compare the whole content of
files. Instead it would compare the location of code blocks relative to the
location of other code blocks, identify added/removed code blocks and
finally compare the contents of code blocks with the same label. Files
could look like this (the tags represent begin/end of code blocks):
L1 <function a>
L2 </ function a>
L3 <function b>
L4 </ function b>
L5 </ Root>
L1 <function a>
L2 Some text
L3 </ function a>
L4 <function b>
L5 </ function b>
L6 </ Root>
The difference between first and second file would be identified as the
difference between the code blocks with label "function a". As the relative
line offset between end of "function a" and beginning of "function b"
remains the same, the versioning system does not mark a change there.
So I am wondering if there were attempts to implement this or if there were
implementation specific limitations or other stuff that I haven't
You received this message because you are subscribed to the Google Groups "Git
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/groups/opt_out.