<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>