Source

amp / bugs / 22.rb

require 'fileutils'

Amp::Bug.new do |b|
  dir  = "test_#{rand(1000)}"
  repo = nil # scoping
  
  b.number 22
  
  # hint, because the functionality isn't there
  b.desc   "`amp update` fails to switch between branches"
  
  b.setup do
    # Create the repo
    repo = Amp::Repositories::Mercurial::LocalRepository.new dir, true
    
    # Add a file (Ampfile is automatically created upon repo initialization)
    repo.staging_area.add 'Ampfile'
    
    # Commit
    repo.commit :modified => ['Ampfile'], :message => 'initial commit'
    
    # Create a new branch
    repo.dirstate.branch = 'new_branch'
    
    # Save it
    repo.commit :message => 'added a new branch'
  end
  
  b.success do
    # This here seems to be triggering a DelayedOpener, which the Hg version
    # doesn't... That should probably be fixed.
    repo.update 'default'
    repo[nil].branch == 'default' # repo[nil] is the working directory's changeset
  end
  
  b.cleanup { FileUtils.rm_rf Dir['test_*'] } # destory all similar looking dirs
end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.