Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 351543 - [suggestion] git could use symlinks for files inside /usr/libexec/git-core
Summary: [suggestion] git could use symlinks for files inside /usr/libexec/git-core
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High minor (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-13 12:49 UTC by Robert Piasek (RETIRED)
Modified: 2011-01-25 15:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Piasek (RETIRED) gentoo-dev 2011-01-13 12:49:25 UTC
Hi,

Currently git is storing lots of _identical_ files inside /usr/libexec/git-core.
While on my desktop I don't really care about free space, on my embedded device, git is using over 100MB of space - a way to much!
All these files could be easily symlinked to /usr/bin/git to save tons of space:

git
git-add
git-annotate
git-apply
git-archive
git-bisect--helper
git-blame
git-branch
git-bundle
git-cat-file
git-check-attr
git-checkout
git-checkout-index
git-check-ref-format
git-cherry
git-cherry-pick
git-clean
git-clone
git-commit
git-commit-tree
git-config
git-count-objects
git-describe
git-diff
git-diff-files
git-diff-index
git-diff-tree
git-fast-export
git-fetch
git-fetch-pack
git-fmt-merge-msg
git-for-each-ref
git-format-patch
git-fsck
git-fsck-objects
git-gc
git-get-tar-commit-id
git-grep
git-hash-object
git-help
git-index-pack
git-init
git-init-db
git-log
git-ls-files
git-ls-remote
git-ls-tree
git-mailinfo
git-mailsplit
git-merge
git-merge-base
git-merge-file
git-merge-index
git-merge-ours
git-merge-recursive
git-merge-subtree
git-merge-tree
git-mktag
git-mktree
git-mv
git-name-rev
git-notes
git-pack-objects
git-pack-redundant
git-pack-refs
git-patch-id
git-peek-remote
git-prune
git-prune-packed
git-push
git-read-tree
git-receive-pack
git-reflog
git-remote
git-remote-ext
git-remote-fd
git-replace
git-repo-config
git-rerere
git-reset
git-revert
git-rev-list
git-rev-parse
git-rm
git-send-pack
git-shortlog
git-show
git-show-branch
git-show-ref
git-stage
git-status
git-stripspace
git-symbolic-ref
git-tag
git-tar-tree
git-unpack-file
git-unpack-objects
git-update-index
git-update-ref
git-update-server-info
git-upload-archive
git-var
git-verify-pack
git-verify-tag
git-whatchanged
git-write-tree



Reproducible: Always
Comment 1 Rafał Mużyło 2011-01-13 16:20:48 UTC
Completely INVALID.
1. most of those 'files' are hardlinks
2. IIRC they're scheduled to go away by git 1.8 (whenever that may be)
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2011-01-13 21:40:20 UTC
As Rafał already pointed out, these files are hard-linked one to another:

  File: `git-cherry-pick'
  Size: 1227168   	Blocks: 2402       IO Block: 4096   regular file
Device: 802h/2050d	Inode: 7888131     Links: 109
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-01-09 16:45:51.000000000 +0100
Modify: 2011-01-09 16:45:51.000000000 +0100
Change: 2011-01-09 16:46:11.000000000 +0100
 Birth: -
Comment 3 Robert Piasek (RETIRED) gentoo-dev 2011-01-25 15:42:33 UTC
Hmm... Interesting. It seems when installed via binary, they're all separate files. I will have a look on binary files creation then.

Thanks for checking!