--- lib/autobuild/import/svn.rb.old 2012-09-12 18:57:09.345881365 +0200 +++ lib/autobuild/import/svn.rb 2012-09-12 18:57:20.145813670 +0200 @@ -33,6 +33,43 @@ @source.dup end + def status(package, only_local=false) + first_column = " ACDIMRX?!~" + sixth_column = " *" + status = Importer::Status.new + status.status = Importer::Status::UP_TO_DATE + Dir.chdir(package.srcdir) do + if only_local + svnst = IO.popen("svn status") { |io| io.readlines } + else + svnst = IO.popen("svn status --show-updates") { |io| io.readlines } + end + svnst.each do |l| + if l[0] == first_column.bytes.to_a[1] # A + status.status = Importer::Status::ADVANCED + status.local_commits << l + elsif l[0] == first_column.bytes.to_a[2] # C + status.status = Importer::Status::NEEDS_MERGE + elsif l[0] == first_column.bytes.to_a[3] # D + status.status = Importer::Status::ADVANCED + status.local_commits << l + elsif l[0] == first_column.bytes.to_a[5] # M + status.status = Importer::Status::ADVANCED + status.local_commits << l + #elsif l[0] == first_column.bytes.to_a[8] # ? + # status.uncommitted_code = true + elsif l[0] == first_column.bytes.to_a[9] # ! + status.status = Importer::Status::SIMPLE_UPDATE + status.remote_commits << l + elsif l[5] == sixth_column.bytes.to_a[1] # * + status.status = Importer::Status::SIMPLE_UPDATE + status.remote_commits << l + end + end + end + status + end + private def update(package) # :nodoc: