From: Tobias Ulmer Date: Thu, 19 Jan 2017 20:17:32 +0000 (+0100) Subject: plugins: skip fetch_source if working copy exists X-Git-Tag: e2factory-2.3.17~59 X-Git-Url: https://git.e2factory.org/?a=commitdiff_plain;h=b91c21d6779cf018fb17e8c740cff00e06645ad3;p=e2factory.git plugins: skip fetch_source if working copy exists Signed-off-by: Tobias Ulmer --- diff --git a/plugins/cvs.lua b/plugins/cvs.lua index 5d63561..f04d9a5 100644 --- a/plugins/cvs.lua +++ b/plugins/cvs.lua @@ -319,6 +319,10 @@ end function cvs.fetch_source(info, sourcename) local rc, re, e, src, cvsroot, workdir, argv + if scm.working_copy_available(info, sourcename) then + return true + end + e = err.new("fetching source failed: %s", sourcename) src = source.sources[sourcename] @@ -407,6 +411,11 @@ function cvs.update(info, sourcename) e = err.new("updating source '%s' failed", sourcename) src = source.sources[sourcename] + rc, re = scm.working_copy_available(info, sourcename) + if not rc then + return false, e:cat(re) + end + workdir = e2lib.join(info.root, src:get_working()) argv = { "update", "-R" } diff --git a/plugins/git.lua b/plugins/git.lua index 545a155..5d9f017 100644 --- a/plugins/git.lua +++ b/plugins/git.lua @@ -415,6 +415,10 @@ end function git.fetch_source(info, sourcename) local e, rc, re, src, git_dir, work_tree, id + if scm.working_copy_available(info, sourcename) then + return true + end + src = source.sources[sourcename] e = err.new("fetching source failed: %s", sourcename) diff --git a/plugins/gitrepo.lua b/plugins/gitrepo.lua index f3b5042..753db21 100644 --- a/plugins/gitrepo.lua +++ b/plugins/gitrepo.lua @@ -250,6 +250,10 @@ function gitrepo.fetch_source(info, sourcename) local e, rc, re, src, git_dir, work_tree, id + if scm.working_copy_available(info, sourcename) then + return true + end + src = source.sources[sourcename] e = err.new("fetching source failed: %s", sourcename) diff --git a/plugins/svn.lua b/plugins/svn.lua index c5d357c..c64cf29 100644 --- a/plugins/svn.lua +++ b/plugins/svn.lua @@ -384,6 +384,10 @@ function svn.fetch_source(info, sourcename) return false, e:cat(re) end + if scm.working_copy_available(info, sourcename) then + return true + end + local argv = { "checkout", svnurl, info.root .. "/" .. src:get_working() } rc, re = svn_tool(argv)