Create RefValue container

This commit is contained in:
2024-06-14 16:29:58 +02:00
parent 556c16c081
commit 6841a97d18
3 changed files with 18 additions and 12 deletions

View File

@@ -84,7 +84,7 @@ def read_tree(tree_oid):
def commit(message):
commit = f"tree {write_tree()}\n"
HEAD = data.get_ref("HEAD")
HEAD = data.get_ref("HEAD").value
if HEAD:
commit += f"parent {HEAD}\n"
@@ -93,23 +93,23 @@ def commit(message):
oid = data.hash_object(commit.encode(), "commit")
data.update_ref("HEAD", oid)
data.update_ref("HEAD", data.RefValue(symbolic=False, value=oid))
return oid
def create_tag(name, oid):
data.update_ref(f"refs/tags/{name}", oid)
data.update_ref(f"refs/tags/{name}", data.RefValue(symbolic=False, value=oid))
def checkout(oid):
commit = get_commit(oid)
read_tree(commit.tree)
data.update_ref("HEAD", oid)
data.update_ref("HEAD", data.RefValue(symbolic=False, value=oid))
def create_branch(name, oid):
data.update_ref(f"refs/heads/{name}", oid)
data.update_ref(f"refs/heads/{name}", data.RefValue(symbolic=False, value=oid))
Commit = namedtuple("Commit", ["tree", "parent", "message"])
@@ -161,8 +161,8 @@ def get_oid(name):
f"refs/heads/{name}",
]
for ref in refs_to_try:
if data.get_ref(ref):
return data.get_ref(ref)
if data.get_ref(ref).value:
return data.get_ref(ref).value
# Name is SHA1
is_hex = all(c in string.hexdigits for c in name)