download: support --ff when cherry-picking

The git cherry-pick already supports this, so plumb the existing repo
option down.  Otherwise it's confusing when people use -c --ff and it
doesn't use that behavior.

Change-Id: Id68932ffa09204bb30b92a21aff185c00394a520
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/259852
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
diff --git a/project.py b/project.py
index 4c8c2ba..a58af4f 100644
--- a/project.py
+++ b/project.py
@@ -2681,8 +2681,10 @@
       if self._allrefs:
         raise GitError('%s checkout %s ' % (self.name, rev))
 
-  def _CherryPick(self, rev):
+  def _CherryPick(self, rev, ffonly=False):
     cmd = ['cherry-pick']
+    if ffonly:
+      cmd.append('--ff')
     cmd.append(rev)
     cmd.append('--')
     if GitCommand(self, cmd).Wait() != 0:
diff --git a/subcmds/download.py b/subcmds/download.py
index 87d0ce0..12d9952 100644
--- a/subcmds/download.py
+++ b/subcmds/download.py
@@ -101,7 +101,7 @@
           print('  %s' % (c), file=sys.stderr)
       if opt.cherrypick:
         try:
-          project._CherryPick(dl.commit)
+          project._CherryPick(dl.commit, ffonly=opt.ffonly)
         except GitError:
           print('[%s] Could not complete the cherry-pick of %s'
                 % (project.name, dl.commit), file=sys.stderr)