| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
Left a few Prelude.head's in where it was checked not null and too hard to
remove, etc.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In git, a Ref can be a Sha, or a Branch, or a Tag. I added type aliases for
those. Note that this does not prevent mixing up of eg, refs and branches
at the type level. Since git really doesn't care, except rare cases like
git update-ref, or git tag -d, that seems ok for now.
There's also a tree-ish, but let's just use Ref for it. A given Sha or Ref
may or may not be a tree-ish, depending on the object type, so there seems
no point in trying to represent it at the type level.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many functions took the repo as their first parameter. Changing it
consistently to be the last parameter allows doing some useful things with
currying, that reduce boilerplate.
In particular, g <- gitRepo is almost never needed now, instead
use inRepo to run an IO action in the repo, and fromRepo to get
a value from the repo.
This also provides more opportunities to use monadic and applicative
combinators.
|
|
|
|
|
| |
Turned out I had already done all the work needed to support this when
unused started checking all branches.
|
|
|
|
|
|
|
|
|
| |
Checks location log information, and file contents.
Does not check that numcopies is satisfied, as .gitattributes information
about numcopies is not available in a bare repository. In practice, that
should not be a problem, since fsck is also run in a checkout and will
check numcopies there.
|
|
|
|
|
|
|
|
|
| |
This new approach allows filtering out checks from the default set that are
not appropriate for a command, rather than having to list every check
that is appropriate. It also reduces some boilerplate.
Haskell does not define Eq for functions, so I had to go a long way around
with each check having a unique id. Meh.
|
| |
|
| |
|
| |
|
|
|
|
| |
no code changes
|
| |
|
| |
|
|
|
|
| |
no code changes
|
|
|
|
|
|
|
|
|
|
| |
This yields a second or so speedup in unused, find, etc. Seems that even
when the ByteString is immediately split and then converted to Strings,
it's faster.
I may try to push ByteStrings out into more of git-annex gradually,
although I suspect most of the time-critical parts are already covered
now, and many of the rest rely on libraries that only support Strings.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixed the laziness space leak, so it runs in 60 mb or so again. Slightly
faster due to using Data.Set.difference now, although this also makes it
use slightly more memory.
Also added display of the refs being checked, and made unused --from
also check all refs for things in the remote.
|
|
|
|
| |
needs time and space optimisation
|
| |
|
| |
|
|
|
|
|
|
|
| |
These were a mistake, they make the type signatures harder to read and
less flexible. The CommandSeek, CommandStart, CommandPerform, and
CommandCleanup types were a good idea, but composing them with the
parameters expected is going too far.
|
|
|
|
|
|
|
|
|
|
| |
Adds a missing newline when a longnote is followed by a endresult.
Multiple longnotes in a row will now be separated by a blank line, which
could be a bug or a feature depending on taste.
Removed several places where newlines were explicitly displayed after
longnotes.
|
| |
|
|
|
|
|
|
|
| |
Using a single strictness annotation, in just the right place.
Tried several others, none of which helped and some of which potentially
hurt. This is only the second time I've really had to deal with this in
a year of using haskell, which is, I suppose not that bad.
|
|
|
|
|
| |
And add a simple dots-based progress display, currently only used in v2
upgrade.
|
| |
|
|
|
|
| |
It was always imported qualified as Git anyway
|
| |
|
|
|
|
|
| |
GitRepo is getting too large an interface; these all fit nicely into a
submodule.
|
|
|
|
|
| |
Now that branches are more likely, unused needs to more explicitly warn
that it does not look in them.
|
|
|
|
|
|
| |
That sucking sound is a whole page of code vanishing to be replaced with
return . catMaybes . map (logFileKey . takeFileName) =<< Branch.files
What can I say, git is my database, and haskell my copilot.
|
| |
|
|
|
|
| |
It will need to run in Annex so it can use Branch
|
| |
|
|
|
|
| |
Introduced in 43f0a666f0f6cc152a2b778921831d6d7daedcaf
|
| |
|
|
|
|
|
| |
Display the name of the remote being checked, with "." for the current
remote, echoing the way describe takes that to change its description.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
temp files are always assumed to be unused, in either mode
|
|
|
|
|
|
|
|
|
|
| |
Add --fast flag, that can enable less expensive, but also less thurough versions of some commands.
* Add --fast flag, that can enable less expensive, but also less thurough
versions of some commands.
* fsck: In fast mode, avoid checking checksums.
* unused: In fast mode, just show all existing temp files as unused,
and avoid expensive scan for other unused content.
|
|
|
|
|
| |
There are two types of commands; those that access the repository and those
that don't. Sorted.
|