pyrevisionstore: fix delta chain base case name

Summary:
A recent change made delta base's be Option types, and when we
encounter a None we treat that as the end of a delta chain. In the python
translation layer code we turned this into a Key of ("", nullid) when it
should've been (filename, nullid). This broke a test.

Reviewed By: phillco, quark-zju

Differential Revision: D8768592

fbshipit-source-id: 858a8eadad8699d2e7e99040486f836710381a4f
This commit is contained in:
Durham Goode 2018-07-09 10:07:03 -07:00 committed by Facebook Github Bot
parent 9c41cf636e
commit 1ba7bce984

View File

@ -47,7 +47,13 @@ pub fn from_delta_to_tuple(py: Python, delta: &Delta) -> PyObject {
let (name, node) = from_key(py, &delta.key);
let (base_name, base_node) = match delta.base.as_ref() {
Some(base) => from_key(py, &base),
None => from_key(py, &Key::new(Box::new([0u8; 0]), Node::null_id().clone())),
None => from_key(
py,
&Key::new(
delta.key.name().to_vec().into_boxed_slice(),
Node::null_id().clone(),
),
),
};
let bytes = PyBytes::new(py, &delta.data);
// A python delta is a tuple: (name, node, base name, base node, delta bytes)