This git repository is a child (of sorts) of the git.gluster.com/glusterfs.git repository, where origins of its contents come from the "swift" and "ufo" directories of its parent repository. The goal was to acknowledge that the gluster-swift integration work is in fact a separate and independent coding effort intersecting at the packaging level with GlusterFS upstream and its derivative products, for example, Red Hat's RHS. To create this repository, we followed the steps below (in pseudo script form), which assumes that one is using an up-to-date glusterfs.git locally-cloned repository: $ # $ # First list all of the changes to the "ufo" directory: $ # $ git checkout master $ git log --oneline ufo 6d6205e object-storage: provide more common cfg defaults bf7b83d object-storage: cleanup err handling in Glusterfs. bbaa273 object-storage: turn off stat() for container list 6a7d28c object-storage: use tox for unit tests; fix em too a56dca9 object-storage: Import missing sys and errno modules. 93175bd Adds missing functions to ring.py, and more thorough tests. 790cbb8 object-storage: Removed the redundant REMOTE_CLUSTER option. ee5df68 object-storage: Fixing the errors and warnings in unittest. 598ca6b object-storage: Restoring multi volume support in UFO. 311a5df object-storage: Use the wrapper functions provided by fs_utils.py to make system calls. 6a6ec98 object-storage: Store the lock file in /var/run/swift. 189eaec object-storage: yield during directory tree walks 16d2801 object-storage: use temp file optimization 8b87819 object-storage: add UFO unit tests cdcbc5b object-storage: only open file when requested a1f4a41 object-storage: don't sort object list, not req'd 10ef8ef object-storage: do not list directory for delete 1338ad1 object-storage: apply upstream DiskFile refactor 2fd8af2 object-storage: a set of cleanups to DiskFile 47e21af object-storage: Initial unittest of DiskFile class 0c9f4d1 object-storage: unit tests to 100% cover utils 29c23f2 object-storage: use temp file optimization for pkl c399ca2 object-storage: Use "-dev" in the version string 7f9adbe object-storage: enforce RPM package dependencies a8d5907 object-storage: fix account mapping 3d83e6c Replace "ssh foo gluster" with "gluster --remote-host=foo" f35d192 object-storage: Add a sorted list comparison to test a64a0d8 object-storage: del 1.4.8 ref from dir hierarchy $ # $ # Notice that it only goes back to the point where the "swift" $ # directory was renamed to "ufo", so we need to checkout the $ # previous revision by: $ # $ git log --oneline | grep -C 1 -F "del 1.4.8" 1f64e5e gsyncd / geo-rep: include hostname in status cmd a64a0d8 object-storage: del 1.4.8 ref from dir hierarchy 94ddaec Don't ignore all files that match (*o|*la|*lo) $ git checkout 94ddaec $ git log --oneline swift 1129698 object-storage: final changes to remove swift diff e8d9565 object-storage: refactor to use swift devices 05cc14c object-storage: make proper refs to module vars b696fc0 object-storage: reduce diffs, bury metadata update ffc7618 object-storage: swift-diff removal: hide obj only 89aff74 object-storage: fix trailing whitespace d2040d1 object-storage: remove the device and part params 6bd81f2 object-storage: only update metadata that changes 7066b49 object-storage: DiskAccount subclassing of DiskDir 92fed12 object-storage: fix bad refs to check_acct_exists f3daa0b object-storage: fix bad refs to REMOTE_CLUSTER ee28eae object-storage: rename self.name to self.container 7fa7029 object-storage: unused parameter cleanup & handl'n a1fd8c8 object-storage: add missing docs for params a6b51d6 object-storage: minor code cleanups b0cb7aa object-storage: remove glusterfs filter requirement cae3216 object-storage: use constants for directory names 6478b56 object-storeage: refactor to use one memcache key 5c272f4 Minor refactorings to mark an internal routine 8534cd5 Reduce the number of stat/fstat system calls made 4f6aeb6 Further reduce extended attribute reads/writes 3ab5404 Move _add_timestamp() closer to where it is used 1a013e3 object-storage: reduce the number of getxattr system calls by one 5110fc0 object-storage: Bump size of metadata stored per xattr key 2b80439 object-storage: Don't catch generic exceptions around xattr calls dbe793b object-storage: Refactor code to reduce Swift diffs carried 22050e5 object-storage: change logging of some errors to warnings ddb4652 Remove the test subdirectory diffs ahead of initial refactoring. 49a3d88 Reduce the number of gratuitous differences in constraints. 3c05477 Fix BZ 865858: remove unnecessary system calls around xattr ops 49fad94 Refactor to use pyxattr's get/set/remove methods a9c613d Fix a small typ-o in the Swift README 72301d4 swift: Donot display async_pending container. bf7634c swift: Fix for multiple mounts on the same mount point. 93893b9 swift: Passing account name in container_update. 530a44a swift: Gluster object storage plugin for Openstack Swift. $ # $ # Now we see that we have the entire history above. $ # $ # Next we need to generate patch files to apply to a clean tree. $ # To do that, we start by listing the patches for the swift tree $ # in reverse order and explicitly requesting a numbered format- $ # patch: $ let idx=1 $ for i in $(git log --oneline --reverse swift | awk '{ print $1 }') ; do $ git checkout $i $ git format-patch --start-number $idx -1 $ ((idx++)) $ done $ # $ # Then we need to switch back to top-of-tree and do the same for $ # the "ufo" directory: $ # $ git checkout master $ for i in $(git log --oneline --reverse ufo | awk '{ print $1 }') ; do $ git checkout $i $ git format-patch --start-number $idx -1 $ ((idx++)) $ done $ # $ # At this point we have a set of sequentially numbered diffs that $ # can be applied to any git repo ... with two exceptions: patches $ # 0056-*.patch and 0061-*.patch have references to files that do not $ # exist ahead of time, so one has to edit out the cli* and .gitignore $ # diffs from those two patches, respectively, and then one can run $ # the following command to create a new repo: $ # $ cd /tmp # Or what ever directory you want to store the new repo in $ mkdir newdir $ cd newdir $ git init $ git am /path/to/*.patch # ... generated above $ git remote add -f origin ssh://@git.gluster.com/gluster-swift.git $ git pull --no-commit origin master $ # $ # By default, a git pull will provide its own commit message, but $ # we list one below to be explicit in case some environments don't $ # have the proper "editor" set. $ # $ git commit -s -m "Merge up to master before committing initial changes" $ # $ # Once we have "Push" commit rights, the following updates the tree: $ # $ git push origin master Counting objects: 660, done. Delta compression using up to 4 threads. Compressing objects: 100% (584/584), done. Writing objects: 100% (659/659), 158.15 KiB, done. Total 659 (delta 316), reused 0 (delta 0) remote: Resolving deltas: 100% (316/316) remote: Processing changes: refs: 1, done remote: (W) ce1fd47: commit message lines >70 characters; manually wrap lines remote: (W) cfb17e8: commit subject >65 characters; use shorter first paragraph remote: (W) c48dcdc: commit message lines >70 characters; manually wrap lines remote: (W) dd826e2: commit message lines >70 characters; manually wrap lines remote: (W) b85ce6f: commit message lines >70 characters; manually wrap lines remote: (W) c565fc2: commit message lines >70 characters; manually wrap lines remote: (W) 6237313: commit message lines >70 characters; manually wrap lines remote: (W) 29d922d: commit message lines >70 characters; manually wrap lines remote: (W) ea1077a: commit message lines >70 characters; manually wrap lines remote: (W) c61aea1: commit message lines >70 characters; manually wrap lines remote: (W) a3a03e0: commit message lines >70 characters; manually wrap lines remote: (W) 3ad7809: commit message lines >70 characters; manually wrap lines To ssh://Portante@git.gluster.com/gluster-swift.git 3303443..f534d66 master -> master