| Class | Svn |
| In: |
lib/vcs/revision.rb
lib/vcs/diff.rb lib/vcs/list.rb lib/vcs/svn.rb lib/vcs/status.rb lib/vcs/ignore.rb |
| Parent: | Object |
| Author: | Nicolas Pouillard <ertai@lrde.epita.fr>. |
| Copyright: | Copyright © 2005 LRDE. All rights reserved. |
| License: | Gnu General Public License. |
| Revision: | $Id: /lrde/tools/trunk/vcs/lib/vcs/ignore.rb 9101 2005-10-02T20:22:46.082320Z pouill_n $ |
# File lib/vcs/svn.rb, line 11 def initialize ( aCmd='svn' ) super @@svn_option_controller ||= OptionController.new(Svn, @@options_specification + Vcs.specific_options.to_a.join("\n")) self.option_controller = @@svn_option_controller end
A diff only for your eyes
# File lib/vcs/diff.rb, line 36 def diffw! ( files_orig=[], options={} ) files = diffw_base(files_orig, options) return if files.empty? and not files_orig.empty? diff_! files, options.merge(:diff_cmd => 'diff', :extensions => '-NPbuw') end
Add an ignore entry in the given path. Automatically determine the rep concerned with svn:ignore. Examples:
$ svn ignore my_subdir/'*.tex' $ svn ignore ./foo.generated my_subdir/another/a_wrong_file
# File lib/vcs/ignore.rb, line 14 def ignore! ( files=[], options={} ) files.each do |file| dir, base = file.to_path.split logger.info { "Add `#{base}' to svn:ignore of `#{dir}'"} data = propget(['svn:ignore', dir], :strict => true) data.output.open('a') { |f| f.puts base } propset!(['svn:ignore', dir], options.merge(:quiet => true, :file => data.output)) data.clean end end
# File lib/vcs/list.rb, line 15 def list! ( files=[], options={}, &block ) if options.has_key?(:do) or block \ or Vcs.categories.any? { |cat| options.has_key?(cat) } action = options[:do] options.delete(:do) categories = [] Vcs.categories.each do |cat| if options.has_key? cat categories << cat options.delete(cat) end end inside_versioned = [] outside_versioned = [] if categories.empty? list_(files, options).output.read.each do |line| inside_versioned << line.chomp end else files << '.' if files.empty? files.each do |file| file.to_path.find do |path| if path.directory? if path.dirname.to_s == '.svn' elsif (path/'.svn').exist? inside_versioned << path else outside_versioned << path end Find.prune else inside_versioned << path end end end end path_list = PathList.new status(inside_versioned) do |se| path_list << se.file if categories.include? se.category end outside_versioned.each do |path| path_list << path if categories.include? Vcs.classify(path) end if action system "#{action} #{path_list}" elsif block block[path_list] else puts path_list end else list_!(files, options) end end
# File lib/vcs/revision.rb, line 12 def revision! ( *args ) puts info(*args).read[/^Revision:\s+(\d+)/, 1] end
# File lib/vcs/svn.rb, line 73 def standard_option? ( option_name ) @@standard_options.include? option_name.to_sym end