Commit Graph

21 Commits

Author SHA1 Message Date
Steve Streeting
74f37dda44 Enable ScanUnpushed to report for named remotes instead of all remotes 2015-10-02 09:44:28 -07:00
Steve Streeting
05ee956347 Add the option to receive scan results on demand 2015-09-07 15:45:02 +01:00
Steve Streeting
dadeb342c2 First pass of fetching recent commits 2015-08-21 15:19:16 +01:00
Billy Gor
f3bf4ea90b major pre-push optimization
this change improves drastically pre-push behaviour, by not sending
lfs objects which are already on a remote. Works perfectly with
pushing new branches and tags.

currently pre-push command analyse "local sha1" vs "remote sha1" of the
ref being pushed and if "remote sha1" is available locally tries to send
only lfs objects introduced with new commits.

why this is broken:
- remote branch might have moved forward (local repo is not up to date).
  In this case you have no chance to isolate new lfs objects ("remote sha1"
  does not exist locally) and git-lfs sends everything from the local
  branch history.
- remote branch does not exist (or new tag is pushed). Same consequences.

But what is important - local repository always have remote references,
from which user created his local branch and started making some local
changes. So, all we have to do is to identify new lfs objects which do
not exist on remote references. And all this can be easily achieved with
the same all mighty git rev-list command.

This change makes git-lfs usable with gerrit, where changes are uploaded
by using magic gerrit branches which does not really exist. i.e.
git push origin master:refs/for/master

in this case "refs/for/master" does not exist and git feeds all 0-s as
"remote sha1".
2015-08-17 10:59:08 +02:00
Steve Streeting
d543277bc8 Add tests including pointer extension data for parseLogOutputToPointers 2015-08-07 15:36:46 +01:00
Steve Streeting
30cbc8eec2 Increase context to 12 to cope with extreme edge cases using 10 extensions 2015-08-05 17:24:36 +01:00
Steve Streeting
051db88de4 Pass extensions to pointer decode too now they're supported 2015-08-05 14:48:12 +01:00
Steve Streeting
b5d098a897 Make sure we have enough diff context in pointer text to cope with extensions 2015-08-05 14:47:09 +01:00
Steve Streeting
90ce6386ab Adding parsing methods to scan git log for LFS references which have been introduced or removed 2015-08-05 14:47:09 +01:00
Ryan Simmen
8d7769ac09 LFS Extensions: smudge command 2015-07-31 17:08:21 -04:00
Steve Streeting
23e4eeba8c Introduce new ScanTree func which reports files with same content & use in checkout
ScanRefs only reports a blob once even if used by many files in the tree,
which is no good for checkout (only one file would be checked out)
2015-07-27 17:26:45 +01:00
Rick Olson
548080154f add options object to ref scanner 2015-07-05 12:18:03 -06:00
Rick Olson
561f12bf98 this forces the scanner to look for deleted objects 2015-07-05 12:04:32 -06:00
Rick Olson
e2c7d0d186 merge master 2015-05-28 11:52:06 -06:00
rubyist
ebc81aedb9 Run update-index as a single background process
Reorganize the transfer queue to provide a channel to watch for object
OIDs as they finish. This can be used in the `get` command to feed a
goroutine that will copy the file to the working directory and inform
the update-index process about it as the transfers finish. This leads to
a greatly reduced amount of time spent updating the index after a get.
2015-05-27 15:52:28 -04:00
Rick Olson
d678d4bf33 update import paths 2015-05-25 12:20:50 -06:00
Scott Barron
c91bb6f355 Merge pull request #311 from michael-k/trace
Traced performance in case of error too
2015-05-16 09:28:00 -04:00
Michael Käufl
d2f9880275 Traced performance in case of error too
This also keeps the usages of 'start' close together.
2015-05-14 12:44:43 +02:00
Rick Olson
216623196a Use goimports instead of gofmt 2015-05-13 13:43:41 -06:00
rubyist
6f549a3a11 lfs.Scan() => lfs.ScanRefs() 2015-04-29 13:27:40 -04:00
rubyist
0cacca1bbc Move pointer and scanner packages into lfs
This refactoring will make a number of things easier. These didn't
really need to be in their own packages. Having them separate packages,
there are a few refactorings I've tried to do that end up with circular
dependencies due to things outside of `lfs` depending on `lfs`. Pushing
these into `lfs` makes refactoring simpler.
2015-04-23 12:20:36 -04:00