Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib.commitIdFromGitRepo: support git-worktree #77473

Merged
merged 1 commit into from Jan 13, 2020

Conversation

elseym
Copy link
Member

@elseym elseym commented Jan 10, 2020

Motivation for this change

nixos-version didn't show the revision/versionSuffix when deployed from a nixpkgs in a git-worktree.

Things done

lib.commitIdFromGitRepo now resolves the refs from the parent repository in case the supplied path is a file containing the path to said repository. this adds support for git-worktree and things alike. see gitrepository-layout(5).

this also:

  • adds a new boolean function lib.pathIsRegularFile to check whether a path is a regular file
  • patches lib.revisionWithDefault and the revision and versionSuffix attributes in config.system.nixos in order to support git-worktrees

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

lib.commitIdFromGitRepo now resolves the refs from the
parent repository in case the supplied path is a file
containing the path to said repository. this adds support
for git-worktree and things alike. see gitrepository-layout(5).

this also:
- adds a new boolean function lib.pathIsRegularFile to
  check whether a path is a regular file
- patches lib.revisionWithDefault and
  the revision and versionSuffix attributes in
  config.system.nixos in order to support git-worktrees
@elseym
Copy link
Member Author

elseym commented Jan 10, 2020

should fix #48539

@lheckemann lheckemann merged commit 247c25d into NixOS:master Jan 13, 2020
@tekeri
Copy link
Contributor

tekeri commented Jan 14, 2020

@elseym Hi, this commit seems to break nixpkgs as a submodule.

while evaluating 'pathIsRegularFile' at /path/to/project/nixpkgs/lib/sources.nix:13:23, called from /path/to/project/nixpkgs/lib/sources.nix:124:39:
string '../.git/modules/nixpkgs/commondir' doesn't represent an absolute path, at /path/to/project/nixpkgs/lib/sources.nix:13:29

@elseym
Copy link
Member Author

elseym commented Jan 14, 2020

@tekeri thanks for pointing that out. i should have tested this more thoroughly. seems like builtins.pathExists is serious about wanting a path to check and not just a string.
i'll have another look at it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants