teamcity/git-plugin.git
2 years agoFaster repositories close in suitable roots search Indore-2017.1.x
Dmitry Neverov [Wed, 28 Feb 2018 09:23:53 +0000 (10:23 +0100)]
Faster repositories close in suitable roots search

We created a single context for entire search and kept
all repositories open until the search is finished.
Since the search can be slow (tens of minutes), create
context per VCS root in order to reduce memory usage.

2 years agoCreate daemon threads in jsch, so we can always exit
Dmitry Neverov [Fri, 26 Jan 2018 16:36:48 +0000 (17:36 +0100)]
Create daemon threads in jsch, so we can always exit

2 years agoTW-53489 respect .ssh/config on the agent machine
Dmitry Neverov [Fri, 26 Jan 2018 16:36:11 +0000 (17:36 +0100)]
TW-53489 respect .ssh/config on the agent machine

2 years agoTW-53436 fix one more hanging
Dmitry Neverov [Wed, 24 Jan 2018 16:00:22 +0000 (17:00 +0100)]
TW-53436 fix one more hanging

Continue read data even if channel is closed. Remote side can close it
when all data were send, but not yet read by us.

2 years agoFix jsch client hanging
Dmitry Neverov [Tue, 23 Jan 2018 12:56:03 +0000 (13:56 +0100)]
Fix jsch client hanging

We need to ask for input stream before connecting because it initializes
the stream.

2 years agoFix env var name
Dmitry Neverov [Wed, 10 Jan 2018 12:10:50 +0000 (13:10 +0100)]
Fix env var name

2 years agoTW-53210 disable gssapi-with-mic ssh authentication
Dmitry Neverov [Wed, 10 Jan 2018 12:00:38 +0000 (13:00 +0100)]
TW-53210 disable gssapi-with-mic ssh authentication

It wasn't supported in the trilead-based ssh client (used before
2017.2.1), so disabling it should not break anything. Problem with
gssapi-with-mic is that by default java asks a user for credentials and
waits for input from stdin, as a result checkout fails by timeout.

Also now we specify a custom security callback handler instead of the
default one which uses stdin. Our handler doesn't provide any
credentials, but will work if the agent machine already has the required
kerberos ticket.

2 years agoBetter ssh logging
Dmitry Neverov [Wed, 10 Jan 2018 12:00:30 +0000 (13:00 +0100)]
Better ssh logging

When debug is enabled write log to stderr immediately. Without that we
don't get any logging in case of hanging (e.g. due to unexpected
interaction with a user). Also it is useful sometimes to get log even in
case of successful authentication.

2 years agoTW-47704, TW-52052 jsch-based ssh implementation for agent-side checkout
Dmitry Neverov [Wed, 6 Dec 2017 09:39:36 +0000 (10:39 +0100)]
TW-47704, TW-52052 jsch-based ssh implementation for agent-side checkout

2 years agoFix flaky test GitUrlSupportTest.should_adjust_gitlab_fetch_url
Dmitry Neverov [Mon, 20 Nov 2017 09:29:36 +0000 (10:29 +0100)]
Fix flaky test GitUrlSupportTest.should_adjust_gitlab_fetch_url

Test failed because we were trying to test connection, because
repository uri wasn't updated after appending '.git'.

3 years agoTW-51968 fix single quote escaping in passwords
Dmitry Neverov [Wed, 25 Oct 2017 07:04:30 +0000 (09:04 +0200)]
TW-51968 fix single quote escaping in passwords

3 years agoMerge branch 'Indore-10.0.x' into Indore-2017.1.x
Dmitry Neverov [Tue, 24 Oct 2017 11:41:58 +0000 (13:41 +0200)]
Merge branch 'Indore-10.0.x' into Indore-2017.1.x

3 years agoTW-51567 do not clean checkout dir when .git is not found
Dmitry Neverov [Tue, 24 Oct 2017 11:37:46 +0000 (13:37 +0200)]
TW-51567 do not clean checkout dir when .git is not found

3 years agoAdd missing repository close
Dmitry Neverov [Wed, 18 Oct 2017 08:20:30 +0000 (10:20 +0200)]
Add missing repository close

3 years agoTW-39586 set username in submodules with relative urls
Dmitry Neverov [Wed, 18 Oct 2017 08:18:26 +0000 (10:18 +0200)]
TW-39586 set username in submodules with relative urls

3 years agoTW-51763 better error when project is created for empty repository
Dmitry Neverov [Wed, 4 Oct 2017 08:04:37 +0000 (10:04 +0200)]
TW-51763 better error when project is created for empty repository

3 years agoTW-51571 better error message in case of empty git repository
Dmitry Neverov [Thu, 28 Sep 2017 07:57:37 +0000 (09:57 +0200)]
TW-51571 better error message in case of empty git repository

3 years agoReset error about non-found git executable when no repositories are found
Dmitry Neverov [Thu, 24 Aug 2017 10:01:56 +0000 (12:01 +0200)]
Reset error about non-found git executable when no repositories are found

3 years agoShow 'git not found' health report in INFO to not scare users
Dmitry Neverov [Fri, 4 Aug 2017 16:06:01 +0000 (18:06 +0200)]
Show 'git not found' health report in INFO to not scare users

3 years agoAdd link to health report
Dmitry Neverov [Tue, 1 Aug 2017 08:23:47 +0000 (10:23 +0200)]
Add link to health report

3 years agoAbility to disable credential helper provided by TeamCity
Dmitry Neverov [Thu, 27 Jul 2017 18:56:09 +0000 (20:56 +0200)]
Ability to disable credential helper provided by TeamCity

3 years agoTW-50714 fetch non-head ref when fetchAllHeads option is enabled
Dmitry Neverov [Mon, 17 Jul 2017 13:56:53 +0000 (15:56 +0200)]
TW-50714 fetch non-head ref when fetchAllHeads option is enabled

It was assumed that fetching all refs will fetch the branch in a build,
but it is not the case for non-head refs (e.g. pull requests).

3 years agoTW-50733 specify full path to java in credential helper
Dmitry Neverov [Wed, 12 Jul 2017 12:30:10 +0000 (14:30 +0200)]
TW-50733 specify full path to java in credential helper

To make it work when java is not in the $PATH

3 years agoLog repository url during git gc
Dmitry Neverov [Tue, 20 Jun 2017 07:18:27 +0000 (09:18 +0200)]
Log repository url during git gc

3 years agoRun gc in a dedicated dir by default
Dmitry Neverov [Tue, 20 Jun 2017 06:50:44 +0000 (08:50 +0200)]
Run gc in a dedicated dir by default

3 years agoTW-14734 enable native git gc by default
Dmitry Neverov [Mon, 19 Jun 2017 15:28:57 +0000 (17:28 +0200)]
TW-14734 enable native git gc by default

3 years agobetter logging
Dmitry Neverov [Mon, 19 Jun 2017 15:28:22 +0000 (17:28 +0200)]
better logging

3 years agoBetter property name
Dmitry Neverov [Mon, 19 Jun 2017 15:25:51 +0000 (17:25 +0200)]
Better property name

3 years agoShow url of the repository where 'git gc' failed
Dmitry Neverov [Mon, 19 Jun 2017 15:22:02 +0000 (17:22 +0200)]
Show url of the repository where 'git gc' failed

3 years agowording
Dmitry Neverov [Mon, 19 Jun 2017 13:56:21 +0000 (15:56 +0200)]
wording

3 years agowording
Dmitry Neverov [Mon, 19 Jun 2017 13:52:14 +0000 (15:52 +0200)]
wording

3 years agoRun git gc only when there is enough disk space
Dmitry Neverov [Mon, 19 Jun 2017 13:51:51 +0000 (15:51 +0200)]
Run git gc only when there is enough disk space

3 years agoClose creted repository
Dmitry Neverov [Mon, 19 Jun 2017 13:24:45 +0000 (15:24 +0200)]
Close creted repository

3 years agoPick-up changed gc cron without server restart
Dmitry Neverov [Mon, 19 Jun 2017 12:57:36 +0000 (14:57 +0200)]
Pick-up changed gc cron without server restart

3 years agoTW-50332 use system's line-endings in credential helper script
Dmitry Neverov [Tue, 13 Jun 2017 15:16:57 +0000 (17:16 +0200)]
TW-50332 use system's line-endings in credential helper script

3 years agoGc logging
Dmitry Neverov [Wed, 24 May 2017 07:07:29 +0000 (09:07 +0200)]
Gc logging

3 years agoLock gc commands duration
Dmitry Neverov [Mon, 22 May 2017 07:39:46 +0000 (09:39 +0200)]
Lock gc commands duration

3 years agoReturn early in order to not clean just added error
Dmitry Neverov [Sun, 21 May 2017 08:33:54 +0000 (10:33 +0200)]
Return early in order to not clean just added error

3 years agoTune git repack options
Dmitry Neverov [Sun, 21 May 2017 08:28:20 +0000 (10:28 +0200)]
Tune git repack options

The -f option allows to create more optimal packs, but makes repack much
slower.

3 years agoLogging for git gc
Dmitry Neverov [Sun, 21 May 2017 07:34:54 +0000 (09:34 +0200)]
Logging for git gc

3 years agoadd .git to Gitlab fetch URL, otherwise VCS operations on the server side fail (cherr...
pavel.sher [Sat, 20 May 2017 17:49:38 +0000 (19:49 +0200)]
add .git to Gitlab fetch URL, otherwise VCS operations on the server side fail (cherry picked from commit e29a220)

3 years agoDon't log stacktrace in non-debug mode
Dmitry Neverov [Fri, 19 May 2017 08:24:08 +0000 (10:24 +0200)]
Don't log stacktrace in non-debug mode

3 years agoTW-50097 handle case when checkout rules are inside submodule
Dmitry Neverov [Thu, 18 May 2017 19:13:20 +0000 (21:13 +0200)]
TW-50097 handle case when checkout rules are inside submodule

3 years agoTW-50097 fix patch with checkout rules for repository with submodules
Dmitry Neverov [Thu, 18 May 2017 16:57:14 +0000 (18:57 +0200)]
TW-50097 fix patch with checkout rules for repository with submodules

3 years agofix compilation
Dmitry Neverov [Thu, 18 May 2017 14:14:58 +0000 (16:14 +0200)]
fix compilation

3 years agoHealth report wording
Dmitry Neverov [Thu, 18 May 2017 13:36:29 +0000 (15:36 +0200)]
Health report wording

3 years agoReport missing git only when there are some clones on the server
Dmitry Neverov [Thu, 18 May 2017 13:20:12 +0000 (15:20 +0200)]
Report missing git only when there are some clones on the server

3 years agoHealth report showing git gc errors
Dmitry Neverov [Thu, 18 May 2017 12:49:27 +0000 (14:49 +0200)]
Health report showing git gc errors

3 years agoReset error when git is found
Dmitry Neverov [Thu, 18 May 2017 11:44:42 +0000 (13:44 +0200)]
Reset error when git is found

3 years agoHealth report for the case when git is not found on the server
Dmitry Neverov [Thu, 18 May 2017 11:42:27 +0000 (13:42 +0200)]
Health report for the case when git is not found on the server

3 years agoTurn cleanup into bean
Dmitry Neverov [Thu, 18 May 2017 10:35:23 +0000 (12:35 +0200)]
Turn cleanup into bean

3 years agoAbility to run 'git gc' without blocking other vcs operations
Dmitry Neverov [Thu, 18 May 2017 09:38:47 +0000 (11:38 +0200)]
Ability to run 'git gc' without blocking other vcs operations

We run 'git gc' in a temprrary repository clone and then swap the
original repository with the optimized one.

3 years agoRun vcs operations with rm lock
Dmitry Neverov [Wed, 17 May 2017 13:54:02 +0000 (15:54 +0200)]
Run vcs operations with rm lock

Later we can run 'git gc' in a dedicated dir and then replace clone with
packed clone under the rm write lock.

3 years agoTW-50043 prohibit newlines in urls
Dmitry Neverov [Tue, 16 May 2017 13:00:03 +0000 (15:00 +0200)]
TW-50043 prohibit newlines in urls

3 years agoFaster checkSuitable()
Dmitry Neverov [Fri, 12 May 2017 08:36:20 +0000 (10:36 +0200)]
Faster checkSuitable()

Check suitability for any repository clone only once

3 years agoMerge branch 'Indore-10.0.x' into Indore-2017.1.x
Dmitry Neverov [Mon, 8 May 2017 06:54:52 +0000 (08:54 +0200)]
Merge branch 'Indore-10.0.x' into Indore-2017.1.x

3 years agoMore stable test
Dmitry Neverov [Mon, 8 May 2017 06:54:01 +0000 (08:54 +0200)]
More stable test

3 years agoMerge branch 'Indore-10.0.x' into Indore-2017.1.x
Dmitry Neverov [Fri, 5 May 2017 11:11:43 +0000 (13:11 +0200)]
Merge branch 'Indore-10.0.x' into Indore-2017.1.x

3 years agoMore stable test
Dmitry Neverov [Fri, 5 May 2017 11:10:54 +0000 (13:10 +0200)]
More stable test

3 years agoMerge branch 'Indore-10.0.x' into Indore-2017.1.x
Dmitry Neverov [Fri, 5 May 2017 11:00:19 +0000 (13:00 +0200)]
Merge branch 'Indore-10.0.x' into Indore-2017.1.x

3 years agoTW-48463 fix concurrent merge/commit
Dmitry Neverov [Fri, 5 May 2017 10:56:42 +0000 (12:56 +0200)]
TW-48463 fix concurrent merge/commit

Push via transport instead of connection, the latter doesn't check the
expected remote ref revision and push always succeeds even if remore
refs was updated.

3 years agoMerge branch 'Indore-10.0.x' into Indore-2017.1.x
Dmitry Neverov [Thu, 4 May 2017 11:57:42 +0000 (13:57 +0200)]
Merge branch 'Indore-10.0.x' into Indore-2017.1.x

3 years agoIgnore prune removed branches error
Dmitry Neverov [Thu, 4 May 2017 11:55:21 +0000 (13:55 +0200)]
Ignore prune removed branches error

Unpruned branch preventing fetch is a rare case, but listing remote refs
can often fail e.g. with timeout error. Looks like it is safe to ignore
such errors.

3 years agoImplement bulk checkSuitable() check
Dmitry Neverov [Wed, 3 May 2017 09:25:27 +0000 (11:25 +0200)]
Implement bulk checkSuitable() check

3 years agoWrite used git version into agent logs
Dmitry Neverov [Wed, 3 May 2017 07:39:13 +0000 (09:39 +0200)]
Write used git version into agent logs

3 years agoIterate through entries, it doesn't affect LRU order
Dmitry Neverov [Tue, 2 May 2017 17:38:10 +0000 (19:38 +0200)]
Iterate through entries, it doesn't affect LRU order

3 years agoEnsure cache entries order
Dmitry Neverov [Tue, 2 May 2017 13:58:54 +0000 (15:58 +0200)]
Ensure cache entries order

3 years agoDon't write file back during loading on server start
Dmitry Neverov [Tue, 2 May 2017 11:49:54 +0000 (13:49 +0200)]
Don't write file back during loading on server start

3 years agoFix tests on agents without git in $PATH
Dmitry Neverov [Tue, 2 May 2017 07:26:27 +0000 (09:26 +0200)]
Fix tests on agents without git in $PATH

3 years agoUpdate project name
Dmitry Neverov [Tue, 2 May 2017 07:17:08 +0000 (09:17 +0200)]
Update project name

3 years agoTW-49782 ignore submodules excluded by rules during patch building
Dmitry Neverov [Tue, 25 Apr 2017 12:52:06 +0000 (14:52 +0200)]
TW-49782 ignore submodules excluded by rules during patch building

3 years agoTW-49786 respect root settings when checking constraints between roots
Dmitry Neverov [Tue, 25 Apr 2017 08:38:40 +0000 (10:38 +0200)]
TW-49786 respect root settings when checking constraints between roots

3 years agoUnify code used in updateSources() and canCheckout() methods
Dmitry Neverov [Mon, 24 Apr 2017 15:54:22 +0000 (17:54 +0200)]
Unify code used in updateSources() and canCheckout() methods

Drop old checkout rules validation, it is obsolete since some exclude
rules are supported with help of sparse checkout.

3 years agoRegister test
Dmitry Neverov [Mon, 24 Apr 2017 15:53:48 +0000 (17:53 +0200)]
Register test

3 years agoTW-49786 disable agent-side checkout when 2 roots are in the same dir
Dmitry Neverov [Mon, 24 Apr 2017 12:32:49 +0000 (14:32 +0200)]
TW-49786 disable agent-side checkout when 2 roots are in the same dir

3 years agoTW-48103 exclude username from http urls in git configs
Dmitry Neverov [Fri, 21 Apr 2017 10:20:44 +0000 (12:20 +0200)]
TW-48103 exclude username from http urls in git configs

The mirror repository location is still computed using URL with username
in order to avoid re-clones.

3 years agoTW-45124 do not list remote refs twice
Dmitry Neverov [Thu, 20 Apr 2017 07:36:20 +0000 (09:36 +0200)]
TW-45124 do not list remote refs twice

3 years agoTW-49746 log git commands working dir only once
Dmitry Neverov [Wed, 19 Apr 2017 16:40:43 +0000 (18:40 +0200)]
TW-49746 log git commands working dir only once

3 years agoTW-49740 log git output as progress messages to show them in UI
Dmitry Neverov [Wed, 19 Apr 2017 15:17:10 +0000 (17:17 +0200)]
TW-49740 log git output as progress messages to show them in UI

3 years agoTW-49740 ability to disable progress from git commands
Dmitry Neverov [Wed, 19 Apr 2017 13:34:29 +0000 (15:34 +0200)]
TW-49740 ability to disable progress from git commands

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Tue, 18 Apr 2017 18:01:32 +0000 (20:01 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoDetect one more recoverable error
Dmitry Neverov [Tue, 18 Apr 2017 17:59:53 +0000 (19:59 +0200)]
Detect one more recoverable error

3 years agoFix compilation
Dmitry Neverov [Thu, 6 Apr 2017 07:03:55 +0000 (09:03 +0200)]
Fix compilation

3 years agodocumenting dsl
Dmitry Neverov [Wed, 5 Apr 2017 08:37:38 +0000 (10:37 +0200)]
documenting dsl

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Fri, 31 Mar 2017 07:54:55 +0000 (09:54 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoTW-49376 enable all urls matching by default
Dmitry Neverov [Fri, 31 Mar 2017 07:51:07 +0000 (09:51 +0200)]
TW-49376 enable all urls matching by default

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Thu, 30 Mar 2017 13:31:08 +0000 (15:31 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoTW-49376 ability to provide credentials for all git-lfs urls
Dmitry Neverov [Thu, 30 Mar 2017 13:29:46 +0000 (15:29 +0200)]
TW-49376 ability to provide credentials for all git-lfs urls

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Wed, 29 Mar 2017 08:11:19 +0000 (10:11 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoConfigure credential helper for submodule udpate command
Dmitry Neverov [Wed, 29 Mar 2017 08:10:25 +0000 (10:10 +0200)]
Configure credential helper for submodule udpate command

Submodules can contain large files too

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Mon, 27 Mar 2017 13:43:31 +0000 (15:43 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoBetter assertion
Dmitry Neverov [Mon, 27 Mar 2017 13:43:02 +0000 (15:43 +0200)]
Better assertion

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Mon, 27 Mar 2017 12:36:04 +0000 (14:36 +0200)]
Merge branch 'Indore-10.0.x'

3 years agoWorkaround flacky test
Dmitry Neverov [Mon, 27 Mar 2017 12:34:20 +0000 (14:34 +0200)]
Workaround flacky test

3 years agofix compilation
Dmitry Neverov [Thu, 23 Mar 2017 14:28:30 +0000 (15:28 +0100)]
fix compilation

3 years agoInterrupt idle git gc when build starts
Dmitry Neverov [Thu, 23 Mar 2017 14:17:20 +0000 (15:17 +0100)]
Interrupt idle git gc when build starts

3 years agoAbility to run 'git gc' when agent is idle
Dmitry Neverov [Thu, 23 Mar 2017 13:55:20 +0000 (14:55 +0100)]
Ability to run 'git gc' when agent is idle

3 years agoOption to not fetch tags during agent-side checkout
Dmitry Neverov [Thu, 23 Mar 2017 12:46:14 +0000 (13:46 +0100)]
Option to not fetch tags during agent-side checkout

Can make 'git fetch' faster

3 years agoTW-40313 always remove orhan index files, they can significantly slowdown checkout
Dmitry Neverov [Thu, 23 Mar 2017 10:05:42 +0000 (11:05 +0100)]
TW-40313 always remove orhan index files, they can significantly slowdown checkout

3 years agoMerge branch 'Indore-10.0.x'
Dmitry Neverov [Tue, 21 Mar 2017 09:54:09 +0000 (10:54 +0100)]
Merge branch 'Indore-10.0.x'