- tag: Generalize HEAD to refs As part of implementing `tag`, we'll generalize the way we handle HEAD. If you think about it, HEAD and tags are similar. They are both ways for ugit to attach a name to an OID. In case of HEAD, the name is hardcoded by ugit; in case of tags, the name will be provided by the user. It makes sense to handle them similarly in *data.py*. In *data.py*, let's extend the function `set_HEAD` and `get_HEAD` to `update_ref` and `get_ref`. "Ref" is a short for reference, and that's the name Git uses. The function will now accept the name of the ref and write/read it as a file under *.ugit* directory. Logically, a ref is a named pointer to an object. The important change is in *data.py*. The rest of the changes just rename some functions: ``` - get_HEAD() -> get_ref('HEAD') - set_HEAD(oid) -> update_ref('HEAD', oid) ``` Note that we didn't change any behaviour of ugit here, this is purely refactoring.