Sonntag, Mai 31, 2020

Wie setzen Subversion Eigenschaften mit git-svn

Gibt es eine Möglichkeit, subversion-Eigenschaften auf ein git-repository erstellt von git-svn?

In meinem Fall möchte ich Bearbeiten Sie die version von svn:external, svn:ignore und
svn:executable.

Jedoch die einzige Möglichkeit, dies zu tun, scheint zu bedeuten, ein check-out mit dem subversion-client. Gibt es eine Möglichkeit, zu Bearbeiten svn-Eigenschaften, ohne vorher zu prüfen, das repository zweimal (einmal für git und einmal mit svn für die Eigenschaften)?

  • Hinweis: git svn propset unterstützt mit Git 2.3.0 (Februar 2015): siehe auch meine Antwort unten.
InformationsquelleAutor Black | 2009-08-13

5 Kommentare

  1. 17

    git-svn nicht unterstützt Subversion-Eigenschaften. Wenn ich mit diesem problem habe ich in der Regel am Ende mit zwei Kassen.

    Dies ist bereits in der git-svn Dokumentation unter BUGS:

    Ignorieren wir alle SVN-Eigenschaften mit Ausnahme von „svn:executable“. Jede nicht behandelte Eigenschaften protokolliert, um $GIT_DIR/svn/<refname>/unhandled.log

    • Dies ist nicht die Antwort, die ich erhofft habe – aber ich denke, ich muss es akzeptieren.
    • Sie nicht brauchen, um ein Subversion-checkout festlegen von Eigenschaften in einem repository. Sie können Sie direkt in das repository mit svn.exe oder mit TortoiseSVN Repo-browser.
    • Diese Antwort stimmt nicht mehr, siehe VonC Antwort stattdessen
  2. 22

    Hinweis: git 2.3.0 (Februar 2015) proset unterstützt mit git svn.

    Sehen commit 83c9433 von Alfred Perlstein (splbio):

    git-svn: Unterstützung für git-svn propset

    Diese änderung ermöglicht git-svn zur Unterstützung der Einstellung der subversion-Eigenschaften.

    Ist es sinnvoll, für die manuelle Einstellung der Eigenschaften, wenn Sie sich auf einem subversion-repo, dass erfordert Eigenschaften festgelegt werden, ohne dass die Bewegung Ihre änderungen zu separaten subversion-checkout, um Requisiten.

    Es ist nit hinweisen: der code keine Unterstützung für das hinzufügen von Requisiten, es sei denn, es gibt auch inhaltliche änderungen an den Dateien sowie.

    Dies zeigt sich in den testcase.

    So, wie man es in t/t9148-git-svn-propset.sh, das funktioniert jetzt:

    git svn propset "$1" "$2" "$file" 
    # like
    git svn propset "svn:keywords" "FreeBSD=%H" "foo"
    
  3. 5

    Angefangen, einen patch zu unterstützen git svn propset hier: git-svn propset Unterstützung

    • Vielen Dank, David. Ich freue mich zu sehen, diese Funktionalität in der nächsten version.
    • Ja; leider ist mein patch genommen hätte viel Nacharbeit zu erhalten akzeptiert, und ich habe verschoben, Weg von der Nutzung git svn in seiner standard-form, bin ja nicht die Absicht zu entwickeln dieses…
  4. 3

    Ist es möglich nur Klonen Sie Ihre SVN-repository mit SmartGit. Es übersetzt svn:executable, svn:externals “ und “ svn:ignore auf ausführbar .gitsvnextmodules und .gitignore. So können Sie ändern und drücken Sie zurück führen, in der entsprechenden Eigenschaften der Modifikation.

    Wenn Sie einen Zugang zu den SVN-server können Sie die Installation von SubGit hinein. Es übersetzt svn:executable, svn:ignore auf der server-Seite bietet eine Git-Schnittstelle zu Ihrem SVN-repository.

  5. 2

    Können Sie auch die svnmucc, in Fall, dass Sie nicht wollen, um eine ganze svn checkout nur Requisiten (meine remote-repo ist wirklich groß).

    Hier ist mein Befehl für das einfügen einer Zeile im svn:ignorieren, ersetzen, URL, DIR, und WERT.

    svnmucc -U URL propset svn:ignore "`git svn propget svn:ignore DIR; echo VALUE`" DIR
    
    • Ich mag dieses, aber ich habe auch geändert, um die URL automatisch: svnmucc -U "$(git svn info | egrep '^URL\:' | cut -d' ' -f2-)" propset svn:global-ignores PATTERN DIRECTORY (. für VERZEICHNIS als Beispiel).

Kostenlose Online-Tests