commit: Mark ostree_repo_transaction_set_ref* checksums nullable

Allow GI bindings to delete refs through ostree_repo_transaction_set_ref
and ostree_repo_transaction_set_refspec by setting the checksum to NULL.

Closes: #834
Approved by: cgwalters
This commit is contained in:
Dan Nicholson 2017-05-04 14:10:57 -05:00 committed by Atomic Bot
parent f3cc0eb25a
commit 37b8dae2c4
2 changed files with 16 additions and 2 deletions

View File

@ -1306,7 +1306,7 @@ ensure_txn_refs (OstreeRepo *self)
* ostree_repo_transaction_set_refspec: * ostree_repo_transaction_set_refspec:
* @self: An #OstreeRepo * @self: An #OstreeRepo
* @refspec: The refspec to write * @refspec: The refspec to write
* @checksum: The checksum to point it to * @checksum: (nullable): The checksum to point it to
* *
* Like ostree_repo_transaction_set_ref(), but takes concatenated * Like ostree_repo_transaction_set_ref(), but takes concatenated
* @refspec format as input instead of separate remote and name * @refspec format as input instead of separate remote and name
@ -1329,7 +1329,7 @@ ostree_repo_transaction_set_refspec (OstreeRepo *self,
* @self: An #OstreeRepo * @self: An #OstreeRepo
* @remote: (allow-none): A remote for the ref * @remote: (allow-none): A remote for the ref
* @ref: The ref to write * @ref: The ref to write
* @checksum: The checksum to point it to * @checksum: (nullable): The checksum to point it to
* *
* If @checksum is not %NULL, then record it as the target of ref named * If @checksum is not %NULL, then record it as the target of ref named
* @ref; if @remote is provided, the ref will appear to originate from that * @ref; if @remote is provided, the ref will appear to originate from that

View File

@ -52,4 +52,18 @@ let child = root.get_child('some-file');
let info = child.query_info("standard::name,standard::type,standard::size", 0, null); let info = child.query_info("standard::name,standard::type,standard::size", 0, null);
assertEquals(info.get_size(), 12); assertEquals(info.get_size(), 12);
// Write a ref and read it back
repo.prepare_transaction(null);
repo.transaction_set_refspec('someref', commit);
repo.commit_transaction(null, null);
let [,readCommit] = repo.resolve_rev('someref', false);
assertEquals(readCommit, commit);
// Delete a ref
repo.prepare_transaction(null);
repo.transaction_set_refspec('someref', null);
repo.commit_transaction(null, null);
[,readCommit] = repo.resolve_rev('someref', true);
assertEquals(readCommit, null);
print("test-core complete"); print("test-core complete");