<pre style='margin:0'>
Umesh Singla (umeshksingla) pushed a commit to branch gsoc17-migrate
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/9ff2a81687e9b02466b068582ab25cc3fa93189b">https://github.com/macports/macports-base/commit/9ff2a81687e9b02466b068582ab25cc3fa93189b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9ff2a81687e9b02466b068582ab25cc3fa93189b
</span>Author: umeshksingla <umeshksingla@macports.org>
AuthorDate: Tue Oct 15 12:34:26 2019 +0200

<span style='display:block; white-space:pre;color:#404040;'>    Pass snapshot-id when restoring migrate snapshot
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    instead of using the last snapshot. A user may create another
</span><span style='display:block; white-space:pre;color:#404040;'>    snapshot while the migration was running, leading to the selection
</span><span style='display:block; white-space:pre;color:#404040;'>    of wrong snapshot while restoring.
</span>---
 src/macports1.0/migrate.tcl  | 14 ++++----------
 src/macports1.0/restore.tcl  |  1 +
 src/macports1.0/snapshot.tcl |  4 ++++
 3 files changed, 9 insertions(+), 10 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/migrate.tcl b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 455ec70..e66e2dc 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -94,16 +94,12 @@ namespace eval migrate {
</span>         if {$snapshot == 0} {
             return -1
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set id [$snapshot id]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set note [$snapshot note]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set datetime [$snapshot created_at]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_msg "Done: Snapshot '$id' : '$note' created at $datetime"
</span> 
         ui_msg "Uninstalling all ports..."
         uninstall_installed
 
         ui_msg "Restoring ports..."
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        return [restore_snapshot]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return [restore_snapshot [$snapshot id]]
</span>     }
 
     ##
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,14 +133,12 @@ namespace eval migrate {
</span>     }
 
     ##
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Restore the list of ports from the latest snapshot using the equivalent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # of 'port restore --last'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Restore the list of ports from the snapshot created above by migrate.
</span>     #
     # @return 0 on success, an error on failure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    proc restore_snapshot {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    proc restore_snapshot {id} {
</span>         array set options {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set options(ports_restore_last) yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set options(ports_restore_snapshot-id) $id
</span>         return [restore::main [array get options]]
     }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/restore.tcl b/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 048c43e..ba30f02 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -61,6 +61,7 @@ namespace eval restore {
</span> 
         if {[info exists options(ports_restore_snapshot-id)]} {
             # use the specified snapshot
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            puts "snapshotid : $options(ports_restore_snapshot-id)"
</span>             set snapshot [fetch_snapshot $options(ports_restore_snapshot-id)]
             ui_msg "Deactivating all ports installed.."
             deactivate_all
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/snapshot.tcl b/src/macports1.0/snapshot.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 04d4707..1d4d483 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/snapshot.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/snapshot.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,6 +77,10 @@ namespace eval snapshot {
</span>             set snapshot [registry::snapshot create $note]
             # TODO: catch
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        set id [$snapshot id]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set note [$snapshot note]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set datetime [$snapshot created_at]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_msg "Done: Snapshot '$note' created with id: $id at $datetime."
</span>         return $snapshot
     }
 }
</pre><pre style='margin:0'>

</pre>