rpms/meld/F-9 meld-1.1.5-git.patch,NONE,1.1 meld.spec,1.24,1.25
Brian Pepple (bpepple)
fedora-extras-commits at redhat.com
Wed Jun 4 00:15:58 UTC 2008
- Previous message: rpms/meld/devel meld-1.1.5-git.patch,NONE,1.1 meld.spec,1.24,1.25
- Next message: rpms/gtk2/devel .cvsignore, 1.85, 1.86 gtk2.spec, 1.297, 1.298 sources, 1.93, 1.94
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: bpepple
Update of /cvs/pkgs/rpms/meld/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28670
Modified Files:
meld.spec
Added Files:
meld-1.1.5-git.patch
Log Message:
* Tue Jun 3 2008 Brian Pepple <bpepple at fedoraproject.org> - 1.1.5-5
- Backport git support (#449250).
meld-1.1.5-git.patch:
--- NEW FILE meld-1.1.5-git.patch ---
diff -urNp meld-1.1.5.OLD/vc/git.py meld-1.1.5/vc/git.py
--- meld-1.1.5.OLD/vc/git.py 1969-12-31 19:00:00.000000000 -0500
+++ meld-1.1.5/vc/git.py 2008-06-03 19:17:13.000000000 -0400
@@ -0,0 +1,169 @@
+# -*- coding: utf-8 -*-
+
+# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:
+
+### Copyright (C) 2002-2005 Stephen Kennedy <stevek at gnome.org>
+### Copyright (C) 2005 Aaron Bentley <aaron.bentley at utoronto.ca>
+### Copyright (C) 2007 José Fonseca <j_r_fonseca at yahoo.co.uk>
+
+### Redistribution and use in source and binary forms, with or without
+### modification, are permitted provided that the following conditions
+### are met:
+###
+### 1. Redistributions of source code must retain the above copyright
+### notice, this list of conditions and the following disclaimer.
+### 2. Redistributions in binary form must reproduce the above copyright
+### notice, this list of conditions and the following disclaimer in the
+### documentation and/or other materials provided with the distribution.
+
+### THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+### IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+### OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+### IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+### INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+### NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+### DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+### THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+### (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+### THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import errno
+import _vc
+
+class Vc(_vc.Vc):
+
+ CMD = "git"
+ NAME = "Git"
+ PATCH_STRIP_NUM = 1
+ PATCH_INDEX_RE = "^diff --git a/(.*) b/.*$"
+
+ def __init__(self, location):
+ self._tree_cache = None
+ while location != "/":
+ if os.path.isdir( "%s/.git" % location):
+ self.root = location
+ return
+ location = os.path.dirname(location)
+ raise ValueError()
+
+ def commit_command(self, message):
+ return [self.CMD,"commit","-m",message]
+ def diff_command(self):
+ return [self.CMD,"diff","HEAD"]
+ def update_command(self):
+ return [self.CMD,"pull"]
+ def add_command(self, binary=0):
+ return [self.CMD,"add"]
+ def remove_command(self, force=0):
+ return [self.CMD,"rm"]
+ def revert_command(self):
+ return [self.CMD,"checkout"]
+ def get_working_directory(self, workdir):
+ if workdir.startswith("/"):
+ return self.root
+ else:
+ return ''
+
+ def cache_inventory(self, topdir):
+ self._tree_cache = self.lookup_tree()
+
+ def uncache_inventory(self):
+ self._tree_cache = None
+
+ def lookup_tree(self):
+ while 1:
+ try:
+ proc = os.popen("cd %s && git status --untracked-files" % self.root)
+ entries = proc.read().split("\n")[:-1]
+ break
+ except OSError, e:
+ if e.errno != errno.EAGAIN:
+ raise
+ statemap = {
+ "unknown": _vc.STATE_NONE,
+ "new file": _vc.STATE_NEW,
+ "deleted": _vc.STATE_REMOVED,
+ "modified": _vc.STATE_MODIFIED,
+ "typechange": _vc.STATE_NORMAL,
+ "unmerged": _vc.STATE_CONFLICT }
+ tree_state = {}
+ for entry in entries:
+ if not entry.startswith("#\t"):
+ continue
+ try:
+ statekey, name = entry[2:].split(":", 2)
+ except ValueError:
+ # untracked
+ name = entry[2:]
+ path = os.path.join(self.root, name.strip())
+ tree_state[path] = _vc.STATE_NONE
+ else:
+ statekey = statekey.strip()
+ name = name.strip()
+ try:
+ src, dst = name.split(" -> ", 2)
+ except ValueError:
+ path = os.path.join(self.root, name.strip())
+ state = statemap.get(statekey, _vc.STATE_NONE)
+ tree_state[path] = state
+ else:
+ # copied, renamed
+ if statekey == "renamed":
+ tree_state[os.path.join(self.root, src)] = _vc.STATE_REMOVED
+ tree_state[os.path.join(self.root, dst)] = _vc.STATE_NEW
+ return tree_state
+
+ def get_tree(self):
+ if self._tree_cache is None:
+ return self.lookup_tree()
+ else:
+ return self._tree_cache
+
+ def lookup_files(self, dirs, files):
+ "files is array of (name, path). assume all files in same dir"
+
+ if len(files):
+ directory = os.path.dirname(files[0][1])
+ elif len(dirs):
+ directory = os.path.dirname(dirs[0][1])
+ else:
+ return [],[]
+
+ tree = self.get_tree()
+
+ retfiles = []
+ retdirs = []
+ for name,path in files:
+ state = tree.get(path, _vc.STATE_IGNORED)
+ retfiles.append( _vc.File(path, name, state) )
+ for name,path in dirs:
+ # git does not operate on dirs, just files
+ retdirs.append( _vc.Dir(path, name, _vc.STATE_NORMAL))
+ for path, state in tree.iteritems():
+ # removed files are not in the filesystem, so must be added here
+ if state is _vc.STATE_REMOVED:
+ if os.path.dirname(path) == directory:
+ retfiles.append( _vc.File(path, name, state) )
+ return retdirs, retfiles
+
+ def listdir(self, start):
+ # just like _vc.Vc.listdir, but ignores just .git
+ if start=="": start="."
+ if start[-1] != "/": start+="/"
+ cfiles = []
+ cdirs = []
+ try:
+ entries = os.listdir(start)
+ entries.sort()
+ except OSError:
+ entries = []
+ for f in [f for f in entries if f!=".git"]:
+ fname = start + f
+ lname = fname
+ if os.path.isdir(fname):
+ cdirs.append( (f, lname) )
+ else:
+ cfiles.append( (f, lname) )
+ dirs, files = self.lookup_files(cdirs, cfiles)
+ return dirs+files
Index: meld.spec
===================================================================
RCS file: /cvs/pkgs/rpms/meld/F-9/meld.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- meld.spec 14 Nov 2007 16:19:51 -0000 1.24
+++ meld.spec 4 Jun 2008 00:15:01 -0000 1.25
@@ -1,6 +1,6 @@
Name: meld
Version: 1.1.5
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Visual diff and merge tool
Group: Development/Tools
@@ -9,6 +9,7 @@
Source0: http://ftp.gnome.org/pub/gnome/sources/meld/1.1/meld-%{version}.tar.bz2
Patch0: desktop.patch
Patch1: %{name}-scrollkeeper.patch
+Patch2: %{name}-%{version}-git.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: desktop-file-utils
@@ -41,6 +42,7 @@
%setup -q
%patch0 -p1 -b .desktop
%patch1 -p1 -b .scrollkeeper
+%patch2 -p1 -b .git
%build
@@ -95,6 +97,9 @@
%changelog
+* Tue Jun 3 2008 Brian Pepple <bpepple at fedoraproject.org> - 1.1.5-5
+- Backport git support (#449250).
+
* Wed Nov 14 2007 Brian Pepple <bpepple at fedoraproject.org> - 1.1.5-4
- Add Requires on gnome-python2-gtksourceview to enable syntax coloring. (#382041)
- Previous message: rpms/meld/devel meld-1.1.5-git.patch,NONE,1.1 meld.spec,1.24,1.25
- Next message: rpms/gtk2/devel .cvsignore, 1.85, 1.86 gtk2.spec, 1.297, 1.298 sources, 1.93, 1.94
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list