From f10e32390d5fa7a781361d344d006aaf6ce51d78 Mon Sep 17 00:00:00 2001 From: randomcamel Date: Mon, 4 Apr 2011 14:14:14 -0700 Subject: [PATCH 1/2] Change ls options from -xt to -xr, which fixes nondeterministic rollback behavior when our releases are named 20110404210241 (YYYYMMDDHHMMSS) but our modification times are unreliable (apparently because of rsync). Best thing would be to have the ls options be user-settable. --- lib/railsless-deploy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/railsless-deploy.rb b/lib/railsless-deploy.rb index 8bb35e0..adcb10b 100644 --- a/lib/railsless-deploy.rb +++ b/lib/railsless-deploy.rb @@ -51,7 +51,7 @@ def _cset(name, *args, &block) _cset(:current_path) { File.join(deploy_to, current_dir) } _cset(:release_path) { File.join(releases_path, release_name) } - _cset(:releases) { capture("ls -xt #{releases_path}").split.reverse } + _cset(:releases) { capture("ls -xr #{releases_path}").split.reverse } _cset(:current_release) { File.join(releases_path, releases.last) } _cset(:previous_release) { releases.length > 1 ? File.join(releases_path, releases[-2]) : nil } From f23bd3fc5e8355e3891827e9af4909858d9b13f1 Mon Sep 17 00:00:00 2001 From: Chris D Date: Mon, 4 Apr 2011 15:12:35 -0700 Subject: [PATCH 2/2] Expose an 'ls_opts' variable that users can set in deploy.rb. --- lib/railsless-deploy.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/railsless-deploy.rb b/lib/railsless-deploy.rb index adcb10b..a76449a 100644 --- a/lib/railsless-deploy.rb +++ b/lib/railsless-deploy.rb @@ -28,6 +28,8 @@ def _cset(name, *args, &block) _cset(:deploy_to) { "/u/apps/#{application}" } _cset(:revision) { source.head } +_cset(:ls_opts) { "-xt" } + # ========================================================================= # These variables should NOT be changed unless you are very confident in # what you are doing. Make sure you understand all the implications of your @@ -51,7 +53,7 @@ def _cset(name, *args, &block) _cset(:current_path) { File.join(deploy_to, current_dir) } _cset(:release_path) { File.join(releases_path, release_name) } - _cset(:releases) { capture("ls -xr #{releases_path}").split.reverse } + _cset(:releases) { capture("ls #{ls_opts} #{releases_path}").split.reverse } _cset(:current_release) { File.join(releases_path, releases.last) } _cset(:previous_release) { releases.length > 1 ? File.join(releases_path, releases[-2]) : nil }