{"id":15878575,"url":"https://github.com/tdd/git-helpers","last_synced_at":"2026-01-11T01:42:30.898Z","repository":{"id":1072534,"uuid":"913676","full_name":"tdd/git-helpers","owner":"tdd","description":"Little scripts generally useful to Git users","archived":false,"fork":false,"pushed_at":"2010-09-16T10:12:10.000Z","size":96,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-07T15:31:12.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tdd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-09-15T21:18:48.000Z","updated_at":"2016-08-08T16:25:36.000Z","dependencies_parsed_at":"2022-07-17T11:46:21.976Z","dependency_job_id":null,"html_url":"https://github.com/tdd/git-helpers","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdd%2Fgit-helpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdd%2Fgit-helpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdd%2Fgit-helpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tdd%2Fgit-helpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tdd","download_url":"https://codeload.github.com/tdd/git-helpers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246730311,"owners_count":20824396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T02:40:33.090Z","updated_at":"2026-01-11T01:42:30.871Z","avatar_url":"https://github.com/tdd.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Git-Helpers\n============\n\nGit-Helpers is a collection of little scripts (currently just one, but hey!) generally useful to Git users.\n\nUsing the scripts\n-----------------\n\nThe scripts should run just about everywhere, as they are pure-Ruby.  Just drop them in a directory that is part of your PATH environment variable, make sure they have execution permissions, and you're ready to go!\n\nStill, you need Ruby.\n\n### Ruby\n\nI went to great pains not to require anything more than that: no Rubygems, etc..  You also probably need to have your `git` binary in your default execution path.\n\nIf you're on a Linux, UNIX or OS X box, you most likely have a recent-enough version of Ruby installed already.  Just check by typing the following in a command line:\n\n\t$ ruby -v\n\truby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]\n\nAny Ruby from 1.8.6 on is fine.  If you don't have it installed (what kind of system is that?!), [head over here](http://www.ruby-lang.org/en/downloads/) and install it; it's pretty fast and painless.\n\nThe scripts\n-----------\n\nThere is currently just one script, but I'll be posting more as I stratch more itches :-)\n\n### \u003ctt\u003egit-svn-migrate-ignores\u003c/tt\u003e\n\nThis is for people who have to deal with remote Subversion repositories.  Git only handles the `svn:executable` property; everything else, most notably `svn:ignore`, is, well… ignored (Git actually says they are \"unhandled\").\n\nWhether you're just migrating a hitherto SVN repo to the joys of Git, or are simply alleviating the pain of SVN by using Git locally over an active Subversion repository, you probably need to keep your `.gitignore` files in sync with your `svn:ignore` properties.  This only goes one way, however, as Git won't let us set Subversion properties; and I didn't want to sync stuff back up, if only to avoid having to rely on a command-line `svn`.\n\nYou can run this script anytime, from anywhere within your Git repository.  It will always *sync the whole \"trunk\"*, though, grabbing whatever unhandled `svn:ignore` were reported by Git for your trunk, and creating, or updating, your `.gitignore` files accordingly.\n\nIt won't add your `.gitignore` files to the index automatically, in case you want to keep those local, or prefer to add them manually for whatever reason.\n\nA typical run may look like this:\n\n\t$ git-svn-migrate-ignores\n\tProcessing .git/svn/trunk/unhandled.log…\n\t  [=] config: Unchanged.\n\t  [=] data: Unchanged.\n\t  [=] db: Unchanged.\n\t  [=] log: Unchanged.\n\t  [M] public: Adding leguide_fr.txt.\n\t  [C] public/images: Adding svn:ignore.\n\t  [M] public/images: Adding brands / carriers / faq_custom / wish_images / wish_lists.\n\t  [=] public/images/categories: Unchanged.\n\t  [=] public/images/categories/fullsize: Unchanged.\n\t  [=] public/images/categories/small_thumb: Unchanged.\n\t  [M] tmp: Adding attachment_fu / inline / restart.txt.\n\t  [=] tmp/cache: Unchanged.\n\t  [=] tmp/pids: Unchanged.\n\t  [=] tmp/sessions: Unchanged.\n\t  [=] tmp/sockets: Unchanged.\n\n* The `[C]` marker means your `.gitignore` file was created on-the-fly.\n* The `[M]` marker means it got updated, because it didn't contain all the entries from the matching `svn:ignore` property.\n* The `[=]` marker means it was left untouched, as it contained all the necessary entries (and possibly more, which is fine).\n\nSo there you have it!  Don't ignore what you should ignore.  Well, you know what I mean :-)\n\nLicence\n-------\n\nThis is licenced under the MIT licence, listed below and at the top of the script.  The executive summary goes: do whatever you want with it, except strip the copyright or licence info from it.\n\n\tCopyright (c) 2010 Christophe Porteneuve \u003ctdd@git-attitude.fr\u003e\n\t\n\tPermission is hereby granted, free of charge, to any person obtaining a copy\n\tof this software and associated documentation files (the \"Software\"), to deal\n\tin the Software without restriction, including without limitation the rights\n\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\tcopies of the Software, and to permit persons to whom the Software is\n\tfurnished to do so, subject to the following conditions:\n\t\n\tThe above copyright notice and this permission notice shall be included in\n\tall copies or substantial portions of the Software.\n\t\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\tTHE SOFTWARE.\n\nContributing\n------------\n\nPeople, this is open-source, using plain old Ruby, and it's posted on Github.  Fork away and be merry!\n\nHappy Git'ing,\n\n(s.) Christophe","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdd%2Fgit-helpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftdd%2Fgit-helpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdd%2Fgit-helpers/lists"}