RFC: iter_changes and content changes
Robert Collins
robertc at robertcollins.net
Tue Dec 2 05:50:00 GMT 2008
So iter_changes is great for status. But its not enough for diff, or
patch.
I'd like to be able to throw a single iterator at
CommitBuilder.record_iter_changes, which would output *both* the
metadata change list *and* patches for the changes.
For instance, iter_changes outputs:
(file_id, (path_in_source, path_in_target),
changed_content, versioned, parent, name, kind,
executable)
If we added a field - content_delta to that, it would do what I want.
That would probably be controlled by a parameter asking for it.
What I'd like, ideally, is to be able to ask a repository to accept a
change which contains such a patch, against an arbitrary revision; this
would (if serialised) allow changes to large files to be streamed to a
server, without having to have the server call-back to the client for a
diff (such callbacks are ugly).
*if* we had that, the commit-to-a-different-branch use case would be as
simple as:
builder = other_branch.get_commit_builder()
builder.record_iter_changes(tree.iter_changes(tree.basis_tree(),
with_patches=True), tree.parents[0])
builder.finish_inventory()
builder.commit()
- and I'd *love* that.
-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20081202/0c97cc4b/attachment.pgp
More information about the bazaar
mailing list