Skip to content

Commit

Permalink
fix: support fetching from Git refsSigned-off-by: Frost Ming <me@fros…
Browse files Browse the repository at this point in the history
…tming.com>

* fix: support fetching from Git refs

Signed-off-by: Frost Ming <me@frostming.com>
  • Loading branch information
frostming committed Jan 4, 2024
1 parent 7d1c215 commit c777db5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
1 change: 1 addition & 0 deletions download/oslo
Submodule oslo added at 2fedd8
3 changes: 2 additions & 1 deletion src/unearth/link.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ def is_vcs(self) -> bool:

@property
def filename(self) -> str:
return os.path.basename(unquote(self.parsed.path))
path = self.parsed.path.rsplit("@", 1)[0]
return os.path.basename(unquote(path))

@property
def dist_info_link(self) -> Link | None:
Expand Down
20 changes: 12 additions & 8 deletions src/unearth/vcs/git.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ def fetch_new(
self.run_command(["clone", *flags, url, str(location)], extra_env=env)

if rev is not None:
self.run_command(["checkout", "-q", rev], cwd=location)
self.run_command(["fetch", "-q", url, rev], cwd=location)
self.run_command(["checkout", "FETCH_HEAD"], cwd=location)
revision = self.get_revision(location)
logger.info("Resolved %s to commit %s", url, revision)
self._update_submodules(location)
Expand All @@ -71,13 +72,16 @@ def update(
self, location: Path, rev: str | None, args: list[str | HiddenText]
) -> None:
self.run_command(["fetch", "-q", "--tags"], cwd=location)
if rev is None:
rev = "HEAD"
try:
# try as if the rev is a branch name or HEAD
resolved = self._resolve_revision(location, f"origin/{rev}")
except UnpackError:
resolved = self._resolve_revision(location, rev)
if rev is not None:
url = self.get_remote_url(location)
self.run_command(["fetch", "-q", url, rev], cwd=location)
resolved = self._resolve_revision(location, "FETCH_HEAD")
else:
try:
# try as if the rev is a branch name or HEAD
resolved = self._resolve_revision(location, "origin/HEAD")
except UnpackError:
resolved = self._resolve_revision(location, "HEAD")
logger.info("Updating %s to commit %s", display_path(location), resolved)
self.run_command(["reset", "--hard", "-q", resolved], cwd=location)

Expand Down

0 comments on commit c777db5

Please sign in to comment.