Advertisement
Guest User

Untitled

a guest
Oct 14th, 2011
2,237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. # Walks up and down revisions in a git repo.
  3. # Usage:
  4. # git walk next
  5. # git walk prev
  6. case ARGV[0]
  7. when "next"
  8. rev_list = `git rev-list --children --all`
  9. refs = rev_list.scan(/[a-z0-9]{40}(?= )/)
  10. refs.unshift(rev_list[/[a-z0-9]{40}/])
  11. refs.reverse!
  12.  
  13. head = `git rev-parse HEAD`.chomp
  14. ref_for_next_commit = refs[refs.index(head) + 1]
  15.  
  16. if ref_for_next_commit
  17. puts `git checkout #{ref_for_next_commit}`
  18. else
  19. puts "You're already on the latest commit."
  20. end
  21. when "prev"
  22. puts `git checkout HEAD^`
  23. else
  24. puts "Usage: git-walk next|prev"
  25. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement