return repo, errors.New("git clone: " + stderr)
}
- // Pull data from source.
+ // Add remote and fetch data.
if _, stderr, err = process.ExecDir(3*time.Minute,
tmpDir, fmt.Sprintf("MigrateRepository(git pull): %s", repoPath),
- "git", "pull", url); err != nil {
- return repo, errors.New("git pull: " + stderr)
+ "git", "remote", "add", "-f", "--tags", "upstream", url); err != nil {
+ return repo, errors.New("git remote: " + stderr)
}
// Push data to local repository.
if _, stderr, err = process.ExecDir(3*time.Minute,
tmpDir, fmt.Sprintf("MigrateRepository(git push): %s", repoPath),
- "git", "push", "origin", "master"); err != nil {
+ "git", "push", "--tags", "origin", "refs/remotes/upstream/*:refs/heads/*"); err != nil {
return repo, errors.New("git push: " + stderr)
}