mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-13 02:30:11 +01:00
Merge branch 'master' of gitorious.org:f-droid/fdroidserver
This commit is contained in:
commit
94afbd8878
@ -638,9 +638,14 @@ The git-svn option connects to an SVN repository, and you specify the URL in
|
||||
exactly the same way, but git is used as a back-end. This is preferable for
|
||||
performance reasons, and also because a local copy of the entire history is
|
||||
available in case the upstream repository disappears. (It happens!). In
|
||||
order to use RepoManifest or Tags as update check modes for this VCS type
|
||||
the URL must encode the path to the trunk and tags, like so:
|
||||
http://svn.code.sf.net/p/project/code;trunk=trunk;tags=tags.
|
||||
order to use Tags as update check mode for this VCS type, the URL must have
|
||||
the tags= special argument set. Likewise, if you intend to use the
|
||||
RepoManifest/branch scheme, you would want to specify branches= as well.
|
||||
Finally, trunk= can also be added. All these special arguments will be passed
|
||||
to "git svn" in order, and their values must be relative paths to the svn repo
|
||||
root dir.
|
||||
Here's an example of a complex git-svn Repo URL:
|
||||
http://svn.code.sf.net/p/project/code/svn;trunk=trunk;tags=tags;branches=branches
|
||||
|
||||
For a Subversion repo that requires authentication, you can precede the repo
|
||||
URL with username:password@ and those parameters will be passed as @option{--username}
|
||||
|
4
fdroid
4
fdroid
@ -18,7 +18,6 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import sys
|
||||
import fdroidserver
|
||||
|
||||
commands = [
|
||||
"build",
|
||||
@ -45,8 +44,7 @@ def main():
|
||||
|
||||
command = sys.argv[1]
|
||||
if not command in commands:
|
||||
print "Command '" + command + "' not recognised."
|
||||
print ""
|
||||
print "Command '" + command + "' not recognised.\n"
|
||||
print_help()
|
||||
sys.exit(1)
|
||||
|
||||
|
@ -60,11 +60,9 @@ def check_tags(app, sdk_path):
|
||||
|
||||
vcs.gotorevision(None)
|
||||
|
||||
if len(app['builds']) == 0:
|
||||
return (None, "Can't use Tags with no builds defined")
|
||||
|
||||
if 'subdir' in app['builds'][-1]:
|
||||
build_dir = os.path.join(build_dir, app['builds'][-1]['subdir'])
|
||||
if len(app['builds']) > 0:
|
||||
if 'subdir' in app['builds'][-1]:
|
||||
build_dir = os.path.join(build_dir, app['builds'][-1]['subdir'])
|
||||
|
||||
hver = None
|
||||
hcode = "0"
|
||||
@ -126,7 +124,10 @@ def check_repomanifest(app, sdk_path, branch=None):
|
||||
vcs.gotorevision('origin/master')
|
||||
pass
|
||||
elif vcs.repotype() == 'git-svn':
|
||||
vcs.gotorevision(None)
|
||||
if branch:
|
||||
vcs.gotorevision(branch)
|
||||
else:
|
||||
vcs.gotorevision(None)
|
||||
elif vcs.repotype() == 'svn':
|
||||
vcs.gotorevision(None)
|
||||
elif vcs.repotype() == 'hg':
|
||||
@ -135,11 +136,9 @@ def check_repomanifest(app, sdk_path, branch=None):
|
||||
else:
|
||||
vcs.gotorevision('default')
|
||||
|
||||
if len(app['builds']) == 0:
|
||||
return (None, "Can't use RepoManifest with no builds defined")
|
||||
|
||||
if 'subdir' in app['builds'][-1]:
|
||||
build_dir = os.path.join(build_dir, app['builds'][-1]['subdir'])
|
||||
if len(app['builds']) > 0:
|
||||
if 'subdir' in app['builds'][-1]:
|
||||
build_dir = os.path.join(build_dir, app['builds'][-1]['subdir'])
|
||||
|
||||
version, vercode, package = common.parse_androidmanifest(build_dir)
|
||||
if not package:
|
||||
@ -177,9 +176,6 @@ def check_market(app):
|
||||
except urllib2.HTTPError, e:
|
||||
if e.code == 404:
|
||||
return (None, 'Not in market')
|
||||
elif e.code == 503:
|
||||
print "Whoops"
|
||||
sys.exit(1)
|
||||
else:
|
||||
return (None, 'Failed with HTTP status' + str(req.getcode()))
|
||||
except Exception, e:
|
||||
|
@ -208,13 +208,11 @@ class vcs_gitsvn(vcs):
|
||||
if len(remote_split) > 1:
|
||||
for i in remote_split[1:]:
|
||||
if i.startswith('trunk='):
|
||||
trunk = i[6:]
|
||||
gitsvn_cmd += ['-T', i[6:]]
|
||||
elif i.startswith('tags='):
|
||||
tags = i[5:]
|
||||
if trunk:
|
||||
gitsvn_cmd += ['-T', trunk]
|
||||
if tags:
|
||||
gitsvn_cmd += ['-t', tags]
|
||||
gitsvn_cmd += ['-t', i[5:]]
|
||||
elif i.startswith('branches='):
|
||||
gitsvn_cmd += ['-b', i[9:]]
|
||||
if subprocess.call(gitsvn_cmd + [remote_split[0], self.local]) != 0:
|
||||
raise VCSException("Git clone failed")
|
||||
else:
|
||||
@ -237,22 +235,24 @@ class vcs_gitsvn(vcs):
|
||||
raise VCSException("Git svn rebase failed")
|
||||
self.refreshed = True
|
||||
if rev:
|
||||
if rev == 'trunk':
|
||||
if subprocess.call(['git', 'checkout', 'trunk'], cwd=self.local) != 0:
|
||||
raise VCSException("Git checkout failed")
|
||||
# Try finding a svn tag
|
||||
p = subprocess.Popen(['git', 'checkout', 'tags/' + rev],
|
||||
cwd=self.local, stderr=subprocess.PIPE)
|
||||
if p.returncode == 0:
|
||||
print p.communicate()[0]
|
||||
else:
|
||||
# Try finding a svn tag
|
||||
if subprocess.call(['git', 'checkout', 'tags/' + rev], cwd=self.local) != 0:
|
||||
# No tag found, normal svn rev translation
|
||||
# Translate svn rev into git format
|
||||
p = subprocess.Popen(['git', 'svn', 'find-rev', 'r' + rev],
|
||||
cwd=self.local, stdout=subprocess.PIPE)
|
||||
rev = p.communicate()[0].rstrip()
|
||||
if p.returncode != 0 or len(rev) == 0:
|
||||
raise VCSException("Failed to get git treeish from svn rev")
|
||||
# Check out the appropriate git revision...
|
||||
# No tag found, normal svn rev translation
|
||||
# Translate svn rev into git format
|
||||
p = subprocess.Popen(['git', 'svn', 'find-rev', 'r' + rev],
|
||||
cwd=self.local, stdout=subprocess.PIPE)
|
||||
rev = p.communicate()[0].rstrip()
|
||||
if p.returncode != 0 or len(rev) == 0:
|
||||
# Try a plain git checkout as a last resort
|
||||
if subprocess.call(['git', 'checkout', rev], cwd=self.local) != 0:
|
||||
raise VCSException("Git checkout failed")
|
||||
raise VCSException("No git treeish found and direct git checkout failed")
|
||||
# Check out the appropriate git revision...
|
||||
if subprocess.call(['git', 'checkout', rev], cwd=self.local) != 0:
|
||||
raise VCSException("Git checkout failed")
|
||||
# Get rid of any uncontrolled files left behind...
|
||||
if subprocess.call(['git', 'clean', '-dffx'], cwd=self.local) != 0:
|
||||
raise VCSException("Git clean failed")
|
||||
|
@ -103,7 +103,7 @@ def update_wiki(apps, apks, verbose=False):
|
||||
wikidata += "We have the current version of this app."
|
||||
wikidata += " (Check mode: " + app['Update Check Mode'] + ")\n\n"
|
||||
if len(app['No Source Since']) > 0:
|
||||
wikidata += "This application has been partially or entirely been missing source code since version " + app['No Source Since'] + "\n\n"
|
||||
wikidata += "This application has partially or entirely been missing source code since version " + app['No Source Since'] + ".\n\n"
|
||||
if len(app['Current Version']) > 0:
|
||||
wikidata += "The current (recommended) version is " + app['Current Version']
|
||||
wikidata += " (version code " + app['Current Version Code'] + ").\n\n"
|
||||
|
Loading…
Reference in New Issue
Block a user