Frage

Ich habe bereits ein SVN liest nur geprüft Repo-out (svn co und nicht git svn). Ich habe einige Änderungen vorgenommen und verpflichtet git verwendet, die dann bis zu GitHub geschoben wird.

An diesem Punkt git haben nicht alle die Geschichte aus dem SVN. Ich frage mich, ob es einen Weg zu extrahieren und importieren diese an dieser Stelle.

Der verschiedene git-svn Guides zeigen, wie eine saubere Repo zu importieren und die Geschichte übertragen, aber nicht eine, die ich finden kann, dass bereits verwendet wird.

War es hilfreich?

Lösung

Sie werden wahrscheinlich einen SVN-Import in ein neues Git Repository, fusionieren die beiden Repositories zu tun haben (nur fügen sie zusammen, ist es wahrscheinlich über sie ist in keinem Zusammenhang wird sich beschweren) und dann rebase die Änderungen zu der importierten Geschichte gemacht.

Andere Tipps

Um Thilo 's gute Antwort , sobald Sie die sVN-Repo in ein git eines importiert, Sie hinzufügen kann, dass git-Repository in Ihre mit einem Skript, wie in detaillierten verschmelzenden in nicht verwandten Zweigen git

#!/bin/bash

set -e

if test -z "$2" -o -n "$3"; then
    echo "usage: $0 REPO BRANCHNAME" >&2
    exit 1
fi

repo=$1
branch=$2

git fetch "$repo" "$branch"

head=$(git rev-parse HEAD)
fetched=$(git rev-parse FETCH_HEAD)
headref=$(git rev-parse --symbolic-full-name HEAD)

git checkout $fetched .

tree=$(git write-tree)

newhead=$(echo "merged in branch '$branch' from $repo" | git commit-tree $tree -p $head -p $fetched)
git-update-ref $headref $newhead $head
git reset --hard $headref

Weitere Verfahren umfassen:

  • versuchen, eine "einfache" git pull REPO BRANCH
  • git Transplantate mit svn merge Geschichte wiederherstellen durch eine Textdatei an .git / info / Transplantate zu schaffen, wobei jede Zeile eine ID von seinen Eltern gefolgt begehen enthält. Ihr lokales Repository wird von nun an tun, als ob das tatsächlich von beiden Eltern abstammen commit.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top