Update the repository's working directory to the specified changeset. If no changeset is specified,
update to the tip of the current named branch and move the active bookmark (see hghelpbookmarks).
Update sets the working directory's parent revision to the specified changeset (see hghelpparents).
If the changeset is not a descendant or ancestor of the working directory's parent and there are
uncommitted changes, the update is aborted. With the -c/--check option, the working directory is checked
for uncommitted changes; if none are found, the working directory is updated to the specified changeset.
The -C/--clean, -c/--check, and -m/--merge options control what happens if the working directory contains
uncommitted changes. At most of one of them can be specified.
1. If no option is specified, and if the requested changeset is an ancestor or descendant of the working
directory's parent, the uncommitted changes are merged into the requested changeset and the merged
result is left uncommitted. If the requested changeset is not an ancestor or descendant (that is, it
is on another branch), the update is aborted and the uncommitted changes are preserved.
2. With the -m/--merge option, the update is allowed even if the requested changeset is not an ancestor
or descendant of the working directory's parent.
3. With the -c/--check option, the update is aborted and the uncommitted changes are preserved.
4. With the -C/--clean option, uncommitted changes are discarded and the working directory is updated to
the requested changeset.
To cancel an uncommitted merge (and lose your changes), use hgmerge--abort.
Use null as the changeset to remove the working directory (like hgclone-U).
If you want to revert just one file to an older revision, use hgrevert[-rREV]NAME.
See hghelpdates for a list of formats valid for -d/--date.
Returns 0 on success, 1 if there are unresolved files.