|
@@ -179,25 +179,50 @@ sub pushChanges {
|
|
|
|
|
|
}
|
|
|
|
|
|
-sub stashAndReset {
|
|
|
+sub dropStash($) {
|
|
|
|
|
|
my $logger = shift;
|
|
|
my $gitCmd = findBin("git",$logger);
|
|
|
- shellex("$gitCmd stash",$logger);
|
|
|
my @stashList = split("\n", shellex("$gitCmd stash list",$logger));
|
|
|
my $stashCount = scalar @stashList;
|
|
|
# TODO: Don't need $stashCount, should just be able to iterate over @stashList
|
|
|
- foreach my $stashNum ( 1..$stashCount ) {
|
|
|
- shellex("$gitCmd stash drop 0",$logger);
|
|
|
+ if ( scalar @stashList == 0 ) {
|
|
|
+ print "Stash is empty so not dropping\n";
|
|
|
+ } else {
|
|
|
+ foreach my $stashNum ( 1..$stashCount ) {
|
|
|
+ shellex("$gitCmd stash drop 0",$logger);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+}
|
|
|
+
|
|
|
+sub stashAndReset {
|
|
|
+
|
|
|
+ my $logger = shift;
|
|
|
+ my $gitCmd = findBin("git",$logger);
|
|
|
+ shellex("$gitCmd stash",$logger);
|
|
|
+ dropStash($logger);
|
|
|
# TODO: Depending on use case need to do more here
|
|
|
shellex("$gitCmd rebase",$logger);
|
|
|
}
|
|
|
|
|
|
-sub resetFromUpstream {
|
|
|
+sub resetFromUpstream($) {
|
|
|
|
|
|
# git stash and git reset --hard and git pull ? I think
|
|
|
+ # git reset upstream/master; git stash
|
|
|
+ my $logger = shift;
|
|
|
+ my $gitCmd = findBin("git",$logger);
|
|
|
+ my $upstream = shellex("$gitCmd config --get remote.upstream.url",$logger);
|
|
|
+ if ( $upstream eq "" || ! defined $upstream ) {
|
|
|
+ print "Upstream not configured, exiting\n";
|
|
|
+ exit 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ shellex("$gitCmd reset upstream/master",$logger);
|
|
|
+ shellex("$gitCmd stash",$logger);
|
|
|
+ dropStash($logger);
|
|
|
+ print "Successful reset from upstream\n";
|
|
|
+ print "Changes have not been pushed, run \'$gitCmd pull\' to revert\n";
|
|
|
|
|
|
}
|
|
|
|