merge master
This commit is contained in:
commit
ae3f87342a
@ -18,6 +18,7 @@ and clean filters (`git lfs get path/to/file`).
|
||||
* Automatic GC for the `.git/lfs/objects` directory.
|
||||
* Client side metrics reporting, so the Git LFS server can optionally track
|
||||
how clients are performing.
|
||||
* Ability to remove objects from the command line through the API.
|
||||
|
||||
## Possible Features
|
||||
|
||||
|
@ -16,6 +16,7 @@ var (
|
||||
)
|
||||
|
||||
func cleanCommand(cmd *cobra.Command, args []string) {
|
||||
requireStdin("This command should be run by the Git 'clean' filter")
|
||||
lfs.InstallHooks(false)
|
||||
|
||||
var filename string
|
||||
|
@ -115,6 +115,8 @@ func pointerReader() (io.ReadCloser, error) {
|
||||
return os.Open(pointerCompare)
|
||||
}
|
||||
|
||||
requireStdin("The --stdin flag expects a pointer file from STDIN.")
|
||||
|
||||
return os.Stdin, nil
|
||||
}
|
||||
|
||||
|
@ -43,6 +43,8 @@ func pushCommand(cmd *cobra.Command, args []string) {
|
||||
lfs.Config.CurrentRemote = args[0]
|
||||
|
||||
if useStdin {
|
||||
requireStdin("Run this command from the Git pre-push hook, or leave the --stdin flag off.")
|
||||
|
||||
// called from a pre-push hook! Update the existing pre-push hook if it's
|
||||
// one that git-lfs set.
|
||||
lfs.InstallHooks(false)
|
||||
|
@ -20,6 +20,7 @@ var (
|
||||
)
|
||||
|
||||
func smudgeCommand(cmd *cobra.Command, args []string) {
|
||||
requireStdin("This command should be run by the Git 'smudge' filter")
|
||||
lfs.InstallHooks(false)
|
||||
|
||||
b := &bytes.Buffer{}
|
||||
|
@ -92,6 +92,14 @@ func PipeCommand(name string, args ...string) error {
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
func requireStdin(msg string) {
|
||||
stat, _ := os.Stdin.Stat()
|
||||
if (stat.Mode() & os.ModeCharDevice) != 0 {
|
||||
Error("Cannot read from STDIN. %s", msg)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func handlePanic(err error) string {
|
||||
if err == nil {
|
||||
return ""
|
||||
|
@ -79,7 +79,7 @@ func TestPointerWithInvalidCompareStdin(t *testing.T) {
|
||||
defer repo.Test()
|
||||
|
||||
cmd := repo.Command("pointer", "--stdin")
|
||||
cmd.Output = "Pointer from STDIN\n\nEOF"
|
||||
cmd.Output = "Cannot read from STDIN. The --stdin flag expects a pointer file from STDIN."
|
||||
cmd.Unsuccessful = true
|
||||
}
|
||||
|
||||
|
@ -72,6 +72,8 @@ The following status codes can optionally be returned from the API, depending on
|
||||
the server implementation.
|
||||
|
||||
* 406 - The Accept header needs to be `application/vnd.git-lfs+json`.
|
||||
* 410 - The requested object used to exist, but was deleted. The message should
|
||||
state why (user initiated, legal issues, etc).
|
||||
* 429 - The user has hit a rate limit with the server. Though the API does not
|
||||
specify any rate limits, implementors are encouraged to set some for
|
||||
availability reasons.
|
||||
@ -204,6 +206,8 @@ Here's a sample response for a request with an authorization error:
|
||||
* 200 - The object exists and the user has access to download it.
|
||||
* 401 - The authentication credentials are incorrect.
|
||||
* 404 - The user does not have access to the object, or it does not exist.
|
||||
* 410 - The object used to exist, but was deleted. The message should state why
|
||||
(user initiated, legal issues, etc).
|
||||
|
||||
## POST /objects
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user