[Libreoffice-commits] online.git: logerrit

Muhammet Kara (via logerrit) logerrit at kemper.freedesktop.org
Sat Nov 9 17:30:09 UTC 2019


 logerrit |  201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 201 insertions(+)

New commits:
commit 3e3e40bbe19f49786f4426f2817f2a3bef99c6d1
Author:     Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Sat Nov 9 20:14:52 2019 +0300
Commit:     Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Sat Nov 9 18:29:50 2019 +0100

    Add logerrit for online
    
    Copied over from core, replaced 'core' strings
    with 'online', and removed 'testfeature'
    
    Change-Id: Iae18ebc97b6851dbe61e5b089fa479dd740e2a8a
    Reviewed-on: https://gerrit.libreoffice.org/82356
    Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
    Tested-by: Muhammet Kara <muhammet.kara at collabora.com>

diff --git a/logerrit b/logerrit
new file mode 100755
index 000000000..36f9530e4
--- /dev/null
+++ b/logerrit
@@ -0,0 +1,201 @@
+#!/bin/bash
+
+#GERRITHOST=gerrit.libreoffice.org
+GERRITHOST=logerrit
+GERRITURL=ssh://$GERRITHOST/online
+
+get_SHA_for_change() {
+    SHA=$(ssh ${GERRITHOST?} gerrit query --all-approvals change:$1|grep ref|tail -1|cut -d: -f2)
+}
+
+submit() {
+        TYPE=$1
+        BRANCH=$2
+        if test -z "$BRANCH"
+        then
+            BRANCH=$(git symbolic-ref HEAD 2> /dev/null)
+            BRANCH="${BRANCH##refs/heads/}"
+            if test -z "$BRANCH"
+            then
+                echo "no branch specified, and could not guess the current branch"
+                exit 1
+            fi
+            echo "no branch specified, guessing current branch $BRANCH"
+        fi
+        git push $GERRITURL HEAD:refs/$TYPE/$BRANCH
+}
+
+logerrit() {
+        echo "Host logerrit gerrit.libreoffice.org"
+        echo "    IdentityFile ~/.ssh/id_rsa"
+        echo "    User $1"
+        echo "    Port 29418"
+        echo "    HostName gerrit.libreoffice.org"
+}
+
+case "$1" in
+    help|--help|"")
+        echo "Usage: ./logerrit subcommand [options]"
+        echo "simple and basic tool to interact with LibreOffice gerrit"
+        echo "see https://wiki.documentfoundation.org/Development/gerrit for details."
+        echo
+        echo "subcommands:"
+        echo "             setup                   walking you though your gerrit setup"
+        echo "             test                    test your gerrit setup"
+        echo
+        echo " --- for submitters:"
+        echo "             submit [BRANCH]         submit your change for review"
+        echo "             submit-draft [BRANCH]   submit your change as draft"
+        echo "             nextchange [BRANCH]     reset branch to the remote to start with the next change"
+        echo "Note: drafts are only visibly to yourself and those that you explicitly add as reviewers."
+        echo
+        echo " --- for reviewers:"
+        echo "             checkout CHANGEID       checkout the changes for review"
+        echo "             pull CHANGEID           pull (and merge) the changes on current branch"
+        echo "             cherry-pick CHANGEID    cherry-pick the change on current branch"
+        echo "             patch CHANGEID          show the change as a patch"
+        echo "             query ....              query for changes for review on project online"
+        echo "             <any other gerrit command>"
+        echo
+        echo "advanced users should consider using git review instead:"
+        echo "http://wiki.documentfoundation.org/Development/GitReview"
+        exit
+    ;;
+    setup)
+        script_canonical_file=$(readlink -f "$0")
+        script_canonical_dir=$(dirname "$script_canonical_file")
+        if ! cd "$script_canonical_dir"; then
+            echo "Can't cd to $script_canonical_dir"
+            exit 1
+        fi
+	ssh_home="$HOME/.ssh";
+	ssh_key=
+	created_ssh=
+	if ! test -d $ssh_home; then
+	    echo "It appears that you have no ssh setup, running ssh-keygen to create that:"
+	    mkdir $ssh_home
+	    chmod 0700 $ssh_home
+	    created_ssh=TRUE
+	    echo
+	    echo "Hit enter to generate an ssh key - you will need to enter a pass-phrase"
+	    echo
+	    read
+	    ssh-keygen -t rsa -f "$ssh_home/id_rsa"
+	fi
+	if test -d $ssh_home; then
+	    if test -f "$ssh_home/id_rsa.pub"; then
+		ssh_key=$(cat $ssh_home/id_rsa.pub);
+	    elif test -f "$ssh_home/id_dsa.pub"; then
+		ssh_key=$(cat $ssh_home/id_dsa.pub);
+	    fi
+	fi
+        echo "Please go to https://gerrit.libreoffice.org/ and:"
+        echo "- press the 'register' button in the top right corner"
+        echo "- after login set yourself a username (its recommended to use your IRC-nick)"
+	if test "z$ssh_key" = "z"; then
+            echo "- add your public ssh-key into the ssh keys settings."
+	else
+	    echo "- paste the key below into the 'Add SSH Public Key' box."
+	    echo
+	    echo "$ssh_key"
+	    echo
+	fi
+        echo
+        echo "Note that you need to register additional email addresses, if you want to"
+        echo "commit from them. Additional emails must be confirmed with repling to the"
+        echo "invitation mail it sends you."
+        echo
+        read -p 'Which user name did you choose? ' GERRITUSER
+	if test "z$created_ssh" = "z"; then
+            echo
+            echo "Please now add the following to your ~/.ssh/config, creating the file if needed:"
+            echo
+	    logerrit $GERRITUSER
+            echo
+        else
+	    echo "Automatically creating your ssh config"
+	    (logerrit $GERRITUSER) > "$ssh_home/config"
+	fi
+	# setup the remote properly ...
+	git config remote.origin.pushurl ssh://logerrit/online
+        echo "To see if your setup was successful, run './logerrit test' then."
+        # a good place to make sure the hooks are set up
+        ./g -z
+    ;;
+    test)
+        if test -n "$(ssh $GERRITHOST 2>&1|grep "Welcome to Gerrit Code Review")"
+        then
+            echo "Your gerrit setup was successful!"
+        else
+            echo "There seems to be trouble. Please have the output of:"
+            echo "ssh -vvvv "$GERRITHOST
+            echo "at hand when looking for help."
+        fi
+    ;;
+    submit)
+        submit 'for' $2
+    ;;
+    submit-draft)
+        submit drafts $2
+    ;;
+    nextchange)
+        if test -n "$(git status -s -uno)"
+        then
+            echo "You have uncommitted changes. Please commit or stash these:"
+            git status
+            exit 1
+        fi
+        CHANGEID=$(git log --format=format:%b -1 HEAD|grep Change-Id|cut -d: -f2|tr -d \ )
+        if test -z "$CHANGEID"
+        then
+            CHANGEID="NOCHANGEID"
+        fi
+        BACKUPBRANCH=backup/$CHANGEID-$(date +%F-%H%M%S)
+        git branch $BACKUPBRANCH
+        echo "current state backed up as $BACKUPBRANCH"
+        BRANCH=$2
+        if test -z "$BRANCH"
+        then
+            BRANCH=$(git symbolic-ref HEAD 2> /dev/null)
+            BRANCH="${BRANCH##refs/heads/}"
+            if test -z "$BRANCH"
+            then
+                echo "no branch specified, and could not guess the current branch"
+                exit 1
+            fi
+            echo "no branch specified, guessing current branch $BRANCH"
+        fi
+        git reset --hard remotes/origin/$BRANCH
+    ;;
+    checkout)
+        get_SHA_for_change $2
+        git fetch $GERRITURL $SHA && git checkout FETCH_HEAD
+    ;;
+    review)
+        echo "'./logerrit review' has be removed as obsolete."
+        echo "Please use either:"
+        echo " - git-review:              https://wiki.documentfoundation.org/Development/GitReview"
+        echo " - or the web-UI directly:  https://gerrit.libreoffice.org/"
+        echo "Both provide a better experience."
+        exit 1;
+    ;;
+    pull)
+        get_SHA_for_change $2
+        git pull $GERRITURL $SHA
+    ;;
+    cherry-pick)
+        get_SHA_for_change $2
+        git fetch $GERRITURL $SHA && git cherry-pick FETCH_HEAD
+    ;;
+    patch)
+        get_SHA_for_change $2
+        git fetch $GERRITURL $SHA && git format-patch -1 --stdout FETCH_HEAD
+    ;;
+    query)
+        shift
+        ssh ${GERRITHOST?} gerrit query project:online "$@"
+    ;;
+    *)
+        ssh ${GERRITHOST?} gerrit "$@"
+    ;;
+esac


More information about the Libreoffice-commits mailing list