How to recursively clean only those untracked files that are not ignored?

2014-04-19 Thread Ilya Basin
According to the help, without -x option git clean should let alone the ignored files, but it doesn't. [il@reallin test]$ cat .gitignore *.sar [il@reallin test]$ mkdir -p conf/sar && touch conf/sar/aaa.sar [il@reallin test]$ git status # On branch master nothing to commit,

Re[4]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-28 Thread Ilya Basin
IB> * I think git-svn doesn't handle the case, when a tag is deleted. IB> I expected it to rename the ref from "tags/tagname" to IB> "tags/tagname@rev", but that doesn't happen. IB> If a tag is replaced, there's no way to tell what was the previous IB> state of that tag: git-svn just rewrit

Re[3]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-06 Thread Ilya Basin
Hi Eric. I'm out of spare time and I still unable to import my repo. The code of SVN.pm is too complex. Please help me. Here's the list of my issues: * I think git-svn doesn't handle the case, when a tag is deleted. I expected it to rename the ref from "tags/tagname" to "tags/tagname@rev", but

Re[4]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-06 Thread Ilya Basin
The last error I encountered is: r7009 = 39805bb078983e34f2fc8d2c8c02d695d00d11c0 (refs/remotes/DMC4_Basic) Too many open files: Can't open file '/home/il/builds/sicap/gitsvn/prd_dmc4.svn/db/revs/0/786': Too many open files at /.snapshots/persist/builds/git/git-git/

Re[3]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-02 Thread Ilya Basin
EW>> Ilya Basin wrote: >>> Hi. I won't send you updated patches until I import and test my huge >>> repo. Everything will be here: >>> https://github.com/basinilya/git/commits/v1.8.2.2-git-svn-fixes >>> >>> At the moment I've decided

Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-02 Thread Ilya Basin
EW> Ilya Basin wrote: >> Hi. I won't send you updated patches until I import and test my huge >> repo. Everything will be here: >> https://github.com/basinilya/git/commits/v1.8.2.2-git-svn-fixes >> >> At the moment I've decided not to implement the

Re: git-svn: problem with svn cp trunk/subdir tags/subdir_1.0

2013-05-02 Thread Ilya Basin
IB> When creating a tag or branch from a subdir, a disjoint branch IB> is created. Then git-svn re-imports the commits using this dir as IB> strip path. IB> Why? I would instead keep the current commit as parent, delete IB> everything except the subdir and move its contents to root directory. Eve

Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-02 Thread Ilya Basin
Hi. I won't send you updated patches until I import and test my huge repo. Everything will be here: https://github.com/basinilya/git/commits/v1.8.2.2-git-svn-fixes At the moment I've decided not to implement the Junio's proposal: > >> JCH> comment line "# added by git-svn only to keep the director

Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-01 Thread Ilya Basin
EW> My personal philosophy has always been: git svn users should leave EW> no trace or indication they're using a non-standard SVN client. Placeholders aren't pushed back to svn. -- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kerne

Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-01 Thread Ilya Basin
JCH> ...and you want to perform a merge on the JCH> Git side of that branch with another Git branch that does have real JCH> contents in that directory, you would want the result to say "This JCH> directory no longer is just for a placeholder", but you cannot say JCH> that globally by updating the

Re[2]: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-05-01 Thread Ilya Basin
IB> In my repo the placeholders change too often (in 1/4 commits). I'm IB> thinking of using: IB> 'git config --unset "svn-remote.$repo_id.added-placeholder" path_regex' IB> instead of full rewrite. I need your help. There are still problems: $ grep "define MAX_MATCHES" ~/builds/git/git-git/c

Re: [PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-04-30 Thread Ilya Basin
IB> + return undef if (!keys $self->{_save_ph}); Correct is: return undef if (!keys %{$self->{_save_ph}}); In my repo the placeholders change too often (in 1/4 commits). I'm thinking of using: 'git config --unset "svn-remote.$repo_id.added-placeholder" path_regex' instead of full rewrite. -

Re[2]: [PATCH 1/5] git-svn: fix occasional "Failed to strip path" error on fetch next commit, try #3

2013-04-30 Thread Ilya Basin
>> } >> >> @@ -458,9 +459,12 @@ sub find_empty_directories { >> my $skip_added = 0; >> foreach my $t (qw/dir_prop file_prop/) { >> foreach my $path (keys %{ $self->{$t} }) { >> - if (exists $self->{$t}->{dirname($path)

[PATCH 5/5] git-svn: fix empty dir tracking in branches

2013-04-30 Thread Ilya Basin
- When creating a tag or branch from a subdir, a disjoint branch is created. Then git-svn re-imports the commits using this dir as strip path. During this re-import the variable %added_placeholder is not up to date. Because the branch is disjoint, this variable should be empty

[PATCH 4/5] git-svn: fix bottleneck in stash_placeholder_list()

2013-04-30 Thread Ilya Basin
.git/config is written on each commit. It's slow --- perl/Git/SVN/Fetcher.pm | 77 +++-- 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm index e658889..a5ad4cd 100644 --- a/perl/Git/SVN/Fe

[PATCH 3/5] git-svn: fix fetch erroneously recreating empty dir placeholder deleted earlier, try #3

2013-04-30 Thread Ilya Basin
The Fetcher accumulates deleted paths in an array and doesn't reset the array on next commit. This causes different results when interrupting and resuming the fetch. When --preserve-empty-dirs flag is used, a path in the array can be erroneously treated as just deleted (although it was deleted in t

[PATCH 2/5] git-svn-test: don't test for possible bug "Failed to strip path", try #3

2013-04-30 Thread Ilya Basin
In the previous commit a showcase was added to t9160-git-svn-preserve-empty-dirs.sh for the "Failed to strip path" bug. Now the flag --stdlayout should be enough. --- t/t9160-git-svn-preserve-empty-dirs.sh | 16 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/t/t916

[PATCH 1/5] git-svn: fix occasional "Failed to strip path" error on fetch next commit, try #3

2013-04-30 Thread Ilya Basin
When --stdlayout and --preserve-empty-dirs flags are used and a directory becomes empty, two things happen: Sometimes find_empty_directories() returns empty list and no empty dir placeholder file created. This happens, because find_empty_directories() marks all directories as non-empty, if at leas

Re: git-svn: problem with svn cp trunk/subdir tags/subdir_1.0

2013-04-29 Thread Ilya Basin
IB> After fixing --preserve-empty-dirs plus --stdlayout a new problem IB> arised: IB> When creating a tag or branch from a subdir, a disjoint branch IB> is created. Then git-svn re-imports the commits using this dir as IB> strip path. IB> Why? I would instead keep the current commit as parent, del

git-svn: problem with svn cp trunk/subdir tags/subdir_1.0

2013-04-29 Thread Ilya Basin
After fixing --preserve-empty-dirs plus --stdlayout a new problem arised: When creating a tag or branch from a subdir, a disjoint branch is created. Then git-svn re-imports the commits using this dir as strip path. Why? I would instead keep the current commit as parent, delete everything except th

[PATCH 3/3] git-svn: fix svn fetch erroneously recreating empty dir placeholder deleted earlier, try #2

2013-04-28 Thread Ilya Basin
The Fetcher accumulates deleted paths in an array and doesn't reset the array on next commit. This causes different results when interrupting and resuming the fetch. When --preserve-empty-dirs flag is used, a path in the array can be erroneously treated as just deleted (although it was deleted in t

[PATCH 2/3] git-svn-test: don't test for possible bug "Failed to strip path", try #2

2013-04-28 Thread Ilya Basin
In the previous commit a showcase was added to t9160-git-svn-preserve-empty-dirs.sh for the "Failed to strip path" bug. Now the flag --stdlayout should be enough. --- t/t9160-git-svn-preserve-empty-dirs.sh | 16 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/t/t916

[PATCH 1/3] git-svn: fix occasional "Failed to strip path" error on fetch next commit, try #2

2013-04-28 Thread Ilya Basin
When --stdlayout and --preserve-empty-dirs flags are used and a directory becomes empty, two things happen: Sometimes find_empty_directories() returns empty list and no empty dir placeholder file created. This happens, because find_empty_directories() marks all directories as non-empty, if at leas

[PATCH 2/2] git-svn: fix svn fetch erroneously recreating empty dir placeholder deleted earlier

2013-04-28 Thread Ilya Basin
The Fetcher accumulates deleted paths in an array and doesn't reset the array on next commit. This causes different results when interrupting and resuming the fetch. When --preserve-empty-dirs flag is used, a path in the array can be erroneously treated as just deleted, although it was deleted in t

[PATCH 1/2] git-svn: fix occasional "Failed to strip path" error on fetch next commit

2013-04-28 Thread Ilya Basin
When --stdlayout and --preserve-empty-dirs flags are used and a directory becomes empty, sometimes no empty dir placeholder file created. Then on fetch next commit git-svn dies with "Failed to strip path" error. Test script: rm -rf testrepo.svn testrepo.gitsvn svnadmin create testrepo.svn

Possible meaningless block in perl/Git/SVN/Fetcher.pm: sub find_empty_directories

2013-04-27 Thread Ilya Basin
Hi list, Hi Ray. Ray Chen who coded this part didn't show up in this list since 2011, so I'm asking everyone else. Also, I don't know perl. Excuse me, if the question is stupid. Here's the function. It's supposed to return a list of directories that became empty during this commit. The returned pa

Re: git-svn --preserve-empty-dirs: Failed to strip path

2013-04-27 Thread Ilya Basin
Small test script: rm -rf testrepo.svn testrepo.gitsvn svnadmin create testrepo.svn url=file://`pwd`/testrepo.svn svn mkdir -m "" "$url/trunk" "$url/branches" "$url/tags" rm -rf testrepo svn co "$url" testrepo cd testrepo/trunk mkdir -p foo/bar/ svn add foo/

git-svn --preserve-empty-dirs: Failed to strip path

2013-04-27 Thread Ilya Basin
Hi. I ran 'git svn init', then git config svn-remote.svn.preserve-empty-dirs true git config svn-remote.svn.placeholder-filename ".gitignore" then 'git svn fetch' and I get this: ... r897 = dc26a4628a0e1fb79452a3f1953fbdc1feae69d1 (refs/remotes/svn/trunk) M pom.xml

Re[2]: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)

2013-04-23 Thread Ilya Basin
ESR> Ilya Basin : >> For new branches the 'from' command can refer the common ancestor in >> an existing branch. For example: >> >> /--E thebranch >> / >> A---B---C---D master >> >> Commit E is newer t

Re[2]: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)

2013-04-23 Thread Ilya Basin
>> But if the branch is new, but it's parent commit is already imported, >> I guess, the only way to refer it is by its SHA-1 >> Eric, what parent information can cvsps provide for the first commit >> in a branch, when invoked with the '-d' flag? ESR> At the moment it doesn't provide any at all.

git svn dcommit doesn't work with useSvnsyncProps

2013-04-23 Thread Ilya Basin
Hi list. Things often go wrong with git svn. Often you have to try different svn layouts and path ignores. This is why I prefer to do the long lasting svn mirror once and then clone the mirror to git with --use-svnsync-props. Why use this option at all? Because without it the commits have different

Re[2]: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)

2013-04-20 Thread Ilya Basin
Hi Eric. ESR> cvs-fast-export does not have incremental-import support. ESR> Whether git-cvs-import has it depend on which version you have ESR> and what backend it it is using. I don't maintain that wrapper. Did you mean "git-fast-import"? Or do you know any wrapper that already uses cvsps3 --fas

Does git fast-import support deltas?

2013-04-18 Thread Ilya Basin
Hi list. Here's what I mean: 1) a created a git repo from a foreign source using git fast-import 2) new commits were added to the foreign source Can I create a fast-import input stream not containing the commits already existing in my git repo and import it? I tried to create such streams with:

Re[2]: put THEIR commits AFTER my commits with a single rebase command

2013-04-18 Thread Ilya Basin
JS> Perhaps this one: JS>git merge origin/master JS>git rebase ORIG_HEAD JS> -- Hannes Wouldn't I have to resolve conflicts twice? BTW, during the rebase, can I tell git to rewrite a different branch upon rebase success or abort? git branch -f tmp origin/master git rebase --o

Re[2]: put THEIR commits AFTER my commits with a single rebase command

2013-04-17 Thread Ilya Basin
JH> git cherry-pick master..origin/master Thanks Johan. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html

put THEIR commits AFTER my commits with a single rebase command

2013-04-17 Thread Ilya Basin
I asked this on stackoverflow, but no reply. http://stackoverflow.com/questions/15971244/git-put-their-commits-after-my-commits-with-a-single-rebase-command Suppose master and origin/master diverged. I'm on master and I want to put the commits from origin/master after my commits and then push --f

Re: State of CVS-to-git conversion tools (Was: Re: cvsps: bad usage: invalid argument --norc)

2013-04-15 Thread Ilya Basin
Hi Eric. I tried --fast-export. It's 2 times faster. The first thing that differs: in cvsps2 commits with adjacent timestamps were joined into one (see the attached files). Do you know the reason? Does this --fast-export thing support what John mentioned, the "incremental import support"? Does 'g

Re: cvsps: bad usage: invalid argument --norc

2013-04-14 Thread Ilya Basin
IB> Hi esr. IB> In cvsps 3.10 the flag --norc was removed. It broke 'git cvsimport'. IB> Please give the option back and write something in the man page like: IB> This option has no effect; it is present for compatibility Looks like the tool is completely different. I think I'll have to downgr

cvsps: bad usage: invalid argument --norc

2013-04-14 Thread Ilya Basin
Hi esr. In cvsps 3.10 the flag --norc was removed. It broke 'git cvsimport'. Please give the option back and write something in the man page like: This option has no effect; it is present for compatibility -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a mess

Re[3]: What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris?

2012-10-17 Thread Ilya Basin
JS>> Most likely, your sed has problems with a sed script in function JS>> get_author_ident_from_commit. I tested it like this: JS>> $ sh -c '. $(git --exec-path)/git-sh-setup; JS>> get_author_ident_from_commit HEAD' JS>> GIT_AUTHOR_NAME='Johannes Sixt' JS>> GIT_AUTHOR_EMAIL='j...@

Re[2]: What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris?

2012-10-17 Thread Ilya Basin
s/.*/GIT_AUTHOR_EMAIL='&'; export GIT_AUTHOR_EMAIL/p g s/^author [^<]* <[^>]*> \(.*\)$/\1/ s/'/'\''/g s/.*/GIT_AUTHOR_DATE='&';

What can cause empty GIT_AUTHOR_NAME for 'git filter-branch --tree-filter' on Solaris?

2012-10-16 Thread Ilya Basin
The filter-branch command, the contents of ~/.gitconfig and the tree are the same. The command succeeds on cygwin, but fails on Solaris due to unset GIT_AUTHOR_NAME and GIT_COMMITTER_NAME : $ git filter-branch --tree-filter "env | grep GIT_ ; $CMD" b416b9bfc5e71531f2f05af4c396bb0ba7560741..HEAD R

Re[2]: git cvsimport: new tags not imported on second cvsimport

2012-08-04 Thread Ilya Basin
AS> Ilya Basin writes: >> I made the initial import: >> git cvsimport -d :pserver:user@blackbird:10010/data/cvs/webgui -C SAP -r >> cvs -k SAP >> >> edited .git/config: >> [cvsimport] >> module = SAP >> r = c

Re: git cvsexportcommit: error patch does not apply

2012-08-04 Thread Ilya Basin
IB> $ git cvsexportcommit -w ../../cvs/SAP -u -p -k -c b04fa43c9f1374cf0ea5f9bf88024282414b0a0c IB> Checking if patch will apply IB> cvs update: nothing known about `documentation/SIC_SAP1_0_ADM_dv1_2.doc' IB> cvs status: nothing known about `documentation/SIC_SAP1_0_ADM_dv1_2.doc'

git cvsexportcommit: error patch does not apply

2012-08-03 Thread Ilya Basin
Hi. Here's what I'm trying to do: In gitcvs: [il@basin documentation]$ git mv SIC_SAP1_0_ADM_dv1_1.doc SIC_SAP1_0_ADM_dv1_2.doc (edit the file) [il@basin documentation]$ git commit ... SIC_SAP1_0_ADM_dv1_2.doc ... $ git log --stat -n 1 commit b04fa43c9f1374cf0ea5f9bf880242