1
0
mirror of https://github.com/danog/gift.git synced 2024-11-26 20:04:47 +01:00

Maintaining backward compatibility in clone() signature

This commit is contained in:
Luke Plaster 2015-11-16 19:14:58 +08:00
parent d099f2fab2
commit ab4de6660f
2 changed files with 20 additions and 1 deletions

View File

@ -36,7 +36,10 @@ Git.init = (path, bare, callback) ->
# callback - Receives `(err, repo)`.
#
Git.clone = (repository, path, depth = 0, callback) ->
if (0 == depth)
if typeof depth is 'function'
callback = depth
depth = 0
if depth is 0 or typeof depth isnt 'number'
bash = "git clone \"#{repository}\" \"#{path}\""
else
bash = "git clone \"#{repository}\" \"#{path}\" --depth \"#{depth}\""

View File

@ -44,6 +44,22 @@ describe "git", ->
@timeout 30000
repo = null
newRepositoryDir = "#{__dirname}/fixtures/clone"
before (done) ->
git.clone "https://github.com/notatestuser/gift.git", newRepositoryDir, (err, _repo) ->
repo = _repo
done err
it "clone a repository", (done) ->
repo.should.be.an.instanceof Repo
repo.remote_list (err, remotes) ->
remotes.should.have.length 1
done()
after (done) ->
exec "rm -rf #{newRepositoryDir}", done
describe "clone() with depth", ->
@timeout 30000
repo = null
newRepositoryDir = "#{__dirname}/fixtures/clone_depth"
before (done) ->
git.clone "https://github.com/notatestuser/gift.git", newRepositoryDir, 1, (err, _repo) ->
repo = _repo